Added mutex locks on static variables such as static scope and userdata, that could be shared around threads

This commit is contained in:
2019-08-24 15:11:53 +02:00
parent 18ffe00bc4
commit 1fcde396c3
2 changed files with 6 additions and 0 deletions

View File

@@ -3,12 +3,14 @@
#include <utility>
#include <unordered_map>
#include <mutex>
#include "UserDataField.hpp"
#include "UserDataOperation.hpp"
namespace Porygon::UserData {
class UserData {
std::unordered_map<uint32_t, unique_ptr<UserDataField>> _fields;
std::mutex _mutex;
// Binary operations
UserDataBinaryOperation* _addition = nullptr;
@@ -62,6 +64,7 @@ namespace Porygon::UserData {
}
inline void CreateField(uint32_t fieldId, UserDataField *field) {
std::lock_guard<std::mutex> guard(_mutex);
_fields.insert({fieldId, unique_ptr<UserDataField>(field)});
}