Revert "use thread_local instead of ThreadLocal for some statics in Random"
authorSara Golemon <sgolemon@fb.com>
Fri, 11 Sep 2015 15:18:59 +0000 (08:18 -0700)
committerSara Golemon <sgolemon@fb.com>
Fri, 11 Sep 2015 15:18:59 +0000 (08:18 -0700)
This reverts commit 6caa3d95ee837703f8f094ffbff5592627417711.

folly/Random.cpp

index 9b960de0530e21ade261511173dc8a01b6c2562c..62eb8f9fbc23ac5f450f6d8de8ccf4ca3f30c250 100644 (file)
@@ -108,13 +108,18 @@ void BufferedRandomDevice::getSlow(unsigned char* data, size_t size) {
   ptr_ += size;
 }
 
+
 }  // namespace
 
 void Random::secureRandom(void* data, size_t size) {
-  static thread_local BufferedRandomDevice bufferedRandomDevice;
-  bufferedRandomDevice.get(data, size);
+  static ThreadLocal<BufferedRandomDevice> bufferedRandomDevice;
+  bufferedRandomDevice->get(data, size);
 }
 
+ThreadLocalPRNG::ThreadLocalPRNG() {
+  static folly::ThreadLocal<ThreadLocalPRNG::LocalInstancePRNG> localInstance;
+  local_ = localInstance.get();
+}
 
 class ThreadLocalPRNG::LocalInstancePRNG {
  public:
@@ -123,11 +128,6 @@ class ThreadLocalPRNG::LocalInstancePRNG {
   Random::DefaultGenerator rng;
 };
 
-ThreadLocalPRNG::ThreadLocalPRNG() {
-  static thread_local ThreadLocalPRNG::LocalInstancePRNG localInstance;
-  local_ = &localInstance;
-}
-
 uint32_t ThreadLocalPRNG::getImpl(LocalInstancePRNG* local) {
   return local->rng();
 }