diff options
-rw-r--r-- | datamanager.cpp | 3 | ||||
-rw-r--r-- | datamanager.h | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/datamanager.cpp b/datamanager.cpp index 2dea169..55d1166 100644 --- a/datamanager.cpp +++ b/datamanager.cpp @@ -178,15 +178,18 @@ string DataManager::makeDataFilename(const string &subDirectory, const string &f void DataManager::seedRandomNumbers(unsigned int seed) { + lock_guard<mutex> lock(m_RngMutex); m_mersenneTwisterRng.seed(seed); } void DataManager::seedRandomNumbers(seed_seq& seed) { + lock_guard<mutex> lock(m_RngMutex); m_mersenneTwisterRng.seed(seed); } int DataManager::randomInteger(int low, int high) { + lock_guard<mutex> lock(m_RngMutex); return uniform_int_distribution<>(low, high)(m_mersenneTwisterRng); } diff --git a/datamanager.h b/datamanager.h index 92ebfd9..219a500 100644 --- a/datamanager.h +++ b/datamanager.h @@ -19,8 +19,9 @@ #ifndef QUACKLE_DATAMANAGER_H #define QUACKLE_DATAMANAGER_H -#include <string> +#include <mutex> #include <random> +#include <string> #include "playerlist.h" @@ -148,6 +149,7 @@ private: PlayerList m_computerPlayers; mt19937_64 m_mersenneTwisterRng; + mutex m_RngMutex; }; inline DataManager *DataManager::self() |