X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=test%2Flib%2Frandom.cpp;h=76c049710432ffbc4b0be42d43aaee59a265c370;hb=193c7ee91c4f97a160a1e4bf572929ab99a276f3;hp=50cc53db508ed219da16f00d9538554f774f6cf0;hpb=7e2b466107a65e22f1cc258ca8643922dbb60352;p=awesomized%2Flibmemcached diff --git a/test/lib/random.cpp b/test/lib/random.cpp index 50cc53db..76c04971 100644 --- a/test/lib/random.cpp +++ b/test/lib/random.cpp @@ -1,20 +1,31 @@ #include "test/lib/random.hpp" #include "test/lib/Connection.hpp" -#include // getpid() +#if HAVE_UNISTD_H +# include // getpid() +#endif +mt19937_64 rnd_eng; +mutex rnd_mtx; -unsigned random_port() { - retry: - auto port = random_num(5000, 32000); - Connection conn(port); +void random_setup() { + using namespace chrono; - if (!conn.open()) { - return port; - } - if (!conn.isOpen()) { - return port; - } - goto retry; + auto time = duration_cast(system_clock::now().time_since_epoch()); + rnd_eng.seed(static_cast(time.count())); +} + +unsigned random_port() { + do { + auto port = random_num(5000, 32000); + Connection conn(port); + + if (!conn.open()) { + return port; + } + if (!conn.isOpen()) { + return port; + } + } while(true); } string random_port_string(const string &) {