move mutex closer to guard call
continuous-integration/drone/push Build is failing Details

Signed-off-by: Deukhoofd <deukhoofd@gmail.com>
This commit is contained in:
Deukhoofd 2019-06-24 17:12:46 +02:00
parent e363d55206
commit e13d75a502
Signed by: Deukhoofd
GPG Key ID: ADF2E9256009EDCE
2 changed files with 4 additions and 3 deletions

View File

@ -3,4 +3,5 @@
namespace Porygon::UserData { namespace Porygon::UserData {
UserDataStorage::_internalDataStorage UserDataStorage::_internal = UserDataStorage::_internalDataStorage(); UserDataStorage::_internalDataStorage UserDataStorage::_internal = UserDataStorage::_internalDataStorage();
std::mutex UserDataStorage::_userDataMutex = std::mutex();
} }

View File

@ -12,7 +12,6 @@ namespace Porygon::UserData {
class _internalDataStorage { class _internalDataStorage {
public: public:
std::unordered_map<uint32_t, UserData*> _userData; std::unordered_map<uint32_t, UserData*> _userData;
std::mutex _userDataMutex;
~_internalDataStorage(){ ~_internalDataStorage(){
for (auto u: _userData){ for (auto u: _userData){
@ -28,15 +27,16 @@ namespace Porygon::UserData {
}; };
static _internalDataStorage _internal; static _internalDataStorage _internal;
static std::mutex _userDataMutex;
public: public:
static void RegisterType(uint32_t i, UserData *ud) { static void RegisterType(uint32_t i, UserData *ud) {
std::lock_guard<std::mutex> guard(_internal._userDataMutex); std::lock_guard<std::mutex> guard(_userDataMutex);
UserDataStorage::_internal._userData.insert({i, ud}); UserDataStorage::_internal._userData.insert({i, ud});
} }
static void ClearTypes(){ static void ClearTypes(){
std::lock_guard<std::mutex> guard(_internal._userDataMutex); std::lock_guard<std::mutex> guard(_userDataMutex);
for (auto u: _internal._userData){ for (auto u: _internal._userData){
delete u.second; delete u.second;
} }