aboutsummaryrefslogtreecommitdiff
path: root/src/common/Utilities/Random.cpp
diff options
context:
space:
mode:
authorGiacomo Pozzoni <giacomopoz@gmail.com>2020-07-18 19:34:45 +0000
committerShauren <shauren.trinity@gmail.com>2022-01-23 22:16:45 +0100
commit509a70f57facf60ea97b64a2e110c8ca52f1ec0d (patch)
treea4b24f0dbec6aba48b8e009f20e441311476a732 /src/common/Utilities/Random.cpp
parent44ea32ace410071494726eeaf69489bad1423591 (diff)
Core/Threads: Replace Boost TLS with C++11 one (#15782)
* Core/Threads: Replace Boost TLS with C++11 one Replace boost::thread_specific_ptr<T> thread-local storage with C++11 thread_local to remove libboost_thread dependency from common project * Fix no-pch build (cherry picked from commit 00b16992f1ae3bf14ab5fe6366028a2b8648bfa0)
Diffstat (limited to 'src/common/Utilities/Random.cpp')
-rw-r--r--src/common/Utilities/Random.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/common/Utilities/Random.cpp b/src/common/Utilities/Random.cpp
index 5a4004b41bd..64b4f0c57d3 100644
--- a/src/common/Utilities/Random.cpp
+++ b/src/common/Utilities/Random.cpp
@@ -18,23 +18,18 @@
#include "Random.h"
#include "Errors.h"
#include "SFMTRand.h"
-#include <boost/thread/tss.hpp>
+#include <memory>
#include <random>
-static boost::thread_specific_ptr<SFMTRand> sfmtRand;
+static thread_local std::unique_ptr<SFMTRand> sfmtRand;
static RandomEngine engine;
static SFMTRand* GetRng()
{
- SFMTRand* rand = sfmtRand.get();
+ if (!sfmtRand)
+ sfmtRand = std::make_unique<SFMTRand>();
- if (!rand)
- {
- rand = new SFMTRand();
- sfmtRand.reset(rand);
- }
-
- return rand;
+ return sfmtRand.get();
}
int32 irand(int32 min, int32 max)