1
0

Use an unreserved qualifier for thread local storage

Fixes #1906
This commit is contained in:
Cengiz Can 2015-11-03 00:21:37 +02:00 committed by Cengiz Can
parent 445938e01d
commit bb48d8a7e8

View File

@ -8,17 +8,19 @@
#include <random> #include <random>
#ifdef _WIN32 #if defined (__GNUC__)
#define thread_local static __declspec(thread) #define ATTRIBUTE_TLS static __thread
#elif defined __APPLE__ #elif defined (_MSC_VER)
#define thread_local static __thread #define ATTRIBUTE_TLS static __declspec(thread)
#else
#error "Unknown thread local storage qualifier"
#endif #endif
static unsigned int GetRandomSeed() static unsigned int GetRandomSeed()
{ {
thread_local bool SeedCounterInitialized = 0; ATTRIBUTE_TLS bool SeedCounterInitialized = 0;
thread_local unsigned int SeedCounter = 0; ATTRIBUTE_TLS unsigned int SeedCounter = 0;
if (!SeedCounterInitialized) if (!SeedCounterInitialized)
{ {
std::random_device rd; std::random_device rd;
@ -47,8 +49,8 @@ public:
TestInts(); TestInts();
TestFloats(); TestFloats();
} }
void TestInts(void) void TestInts(void)
{ {
printf("Testing ints...\n"); printf("Testing ints...\n");