29 lines
641 B
C++
29 lines
641 B
C++
#include "seed_generator.hh"
|
|
|
|
#include <limits>
|
|
#include <mutex>
|
|
|
|
namespace seed_generator
|
|
{
|
|
std::mutex mut;
|
|
|
|
std::mt19937 rng;
|
|
|
|
std::uniform_int_distribution<std::mt19937::result_type> seed_generator(std::numeric_limits<std::mt19937::result_type>::min(),
|
|
std::numeric_limits<std::mt19937::result_type>::max());
|
|
|
|
std::mt19937::result_type
|
|
get_new_seed()
|
|
{
|
|
std::lock_guard<std::mutex> lk{mut};
|
|
return seed_generator(rng);
|
|
}
|
|
|
|
void
|
|
set_meta_seed(std::mt19937::result_type s)
|
|
{
|
|
std::lock_guard<std::mutex> lk{mut};
|
|
rng.seed(s);
|
|
}
|
|
};
|