Added mutex locks on static variables such as static scope and userdata, that could be shared around threads
This commit is contained in:
@@ -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)});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user