00001 #include "util/random.hh"
00002
00003 #include <cstdlib>
00004
00005 #include <boost/thread/locks.hpp>
00006
00007 #include <boost/thread/mutex.hpp>
00008
00009 namespace util
00010 {
00011 namespace
00012 {
00019 boost::mutex rand_lock;
00020 }
00021
00022 void rand_init(unsigned int seed)
00023 {
00024 boost::lock_guard<boost::mutex> lock(rand_lock);
00025 srand(seed);
00026 }
00027
00028
00029 void rand_init()
00030 {
00031 rand_init(time(NULL));
00032 }
00033
00034 namespace internal
00035 {
00036
00037 int rand_int()
00038 {
00039 boost::lock_guard<boost::mutex> lock(rand_lock);
00040 return std::rand();
00041 }
00042 }
00043 }