Fix global statics
authorNicholas Ormrod <njormrod@fb.com>
Mon, 3 Nov 2014 20:39:11 +0000 (12:39 -0800)
committerPavlo Kushnir <pavlo@fb.com>
Sat, 8 Nov 2014 02:32:19 +0000 (18:32 -0800)
Summary:
Statics in headers are bad.

Test Plan: run unit tests

Reviewed By: robbert@fb.com

Subscribers: trunkagent, sdwilsh, njormrod, folly-diffs@

FB internal diff: D1646906

Tasks: 5486739

Signature: t1:1646906:1415042805:dc4d1cec54e9320f1e609808a73622c731a4cdc9

folly/DynamicConverter.h
folly/test/SynchronizedTestLib-inl.h

index 198c0ae1bad31e5e8d5931da8173a9478360616e..2f56784beec5ffed6c5224fd45fd76fc111689b8 100644 (file)
@@ -168,7 +168,7 @@ public:
 
 // conversion factory
 template <typename T, typename It>
-static inline std::move_iterator<Transformer<T, It>>
+inline std::move_iterator<Transformer<T, It>>
 conversionIterator(const It& it) {
   return std::make_move_iterator(Transformer<T, It>(it));
 }
index aa2e3dcbf111e235ee58c918802a36bb78d25b4a..1253d32f50cf2f6f31a3f518b8f2cc2e619d7e38 100644 (file)
 #include <folly/Synchronized.h>
 
 
-static const auto seed = folly::randomNumberSeed();
-typedef std::mt19937 RandomT;
-static RandomT rng(seed);
+inline std::mt19937& getRNG() {
+  static const auto seed = folly::randomNumberSeed();
+  static std::mt19937 rng(seed);
+  return rng;
+}
 
 template <class Integral1, class Integral2>
 Integral2 random(Integral1 low, Integral2 up) {
   std::uniform_int_distribution<> range(low, up);
-  return range(rng);
+  return range(getRNG());
 }
 
 template <class Mutex>