X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=test%2Flib%2Frandom.hpp;h=322de6af91392b59fede7d91945039fcc299e6fb;hb=caf2219d302e8554f3b9bf39ab94f736e8427ef6;hp=1d7f7a6f7973d7ae2496b5c882d1e8926d177f89;hpb=fb3710011600c04359d26615be7a92df1742a3e9;p=awesomized%2Flibmemcached diff --git a/test/lib/random.hpp b/test/lib/random.hpp index 1d7f7a6f..322de6af 100644 --- a/test/lib/random.hpp +++ b/test/lib/random.hpp @@ -22,22 +22,21 @@ #include #include #include +#include using namespace std; using kv_pair = pair; -template -enable_if_t, T> random_num(T min, T max) { - using namespace chrono; - using rnd = mt19937; - using dst = uniform_int_distribution; +extern mt19937_64 rnd_eng; +extern mutex rnd_mtx; - static auto time = duration_cast(system_clock::now().time_since_epoch()); - static auto seed = static_cast(time.count() % numeric_limits::max()); - static auto rgen = rnd{seed}; +void random_setup(); - return dst(min, max)(rgen); +template +enable_if_t, T> random_num(T min, T max) { + lock_guard m{rnd_mtx}; + return uniform_int_distribution(min, max)(rnd_eng); } unsigned random_port();