Difference between revisions of "Random number generation"
(new page, early draft)
Revision as of 16:41, 7 February 2011
This section describes some options and performance measurements of the rutil/Random class.
The Random class has compile time options to control how it generates random numbers. It is control via pre-process symbols, defined either by changing Random.hxx or in the build environment.
The choices are:
[WIN32-default] The Random class uses rand().
RESIP_RANDOM_WIN32_RTL The Random class uses Window's RtlGenRandom (aka SystemFunction036) on XP and higher system, and fallsback to rand() on older Windows platforms.
[POSIX-default] The Random class uses libc's random().
RESIP_RANDOM_THREAD_MUTEX The Random class itself keeps a Mutex, and will lock the mutex prior to calling random_r().
RESIP_RANDOM_THREAD_LOCAL The Random class allocate state for each thread and tracks that using ThreadLocalStorage.