X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=bin%2Foverride.c;h=02402d50ec554d34e9b795237096d26b967a49a0;hb=1ae21d47f282c15a4f9fed23d3b709ff6a9c2de5;hp=a8b0754887f4758ea774d4fde466c01b3e3a4343;hpb=e453dbc30d947cb65a57c50a097dad3ea00f285f;p=vlc diff --git a/bin/override.c b/bin/override.c index a8b0754887..02402d50ec 100644 --- a/bin/override.c +++ b/bin/override.c @@ -148,24 +148,28 @@ int unsetenv (const char *name) * preserve reproducibility of the number sequence (which usually does not * matter). **/ -static pthread_mutex_t prng_lock = PTHREAD_MUTEX_INITIALIZER; +static struct +{ + pthread_mutex_t lock; + unsigned int seed; +} prng = { PTHREAD_MUTEX_INITIALIZER, 0, }; void srand (unsigned int seed) { - pthread_mutex_lock (&prng_lock); + pthread_mutex_lock (&prng.lock); LOG("Warning", "%d", seed); - CALL(srand, seed); - pthread_mutex_unlock (&prng_lock); + prng.seed = seed; + pthread_mutex_unlock (&prng.lock); } int rand (void) { int ret; - pthread_mutex_lock (&prng_lock); + pthread_mutex_lock (&prng.lock); LOG("Warning", ""); - ret = CALL(rand); - pthread_mutex_unlock (&prng_lock); + ret = rand_r (&prng.seed); + pthread_mutex_unlock (&prng.lock); return ret; }