Permalink
Browse files

Win32: added per-thread random seeding.

The change in b91bcba29351 was not enough to fix random() seeding.
On Windows, the srand() seeds the PRNG only in the current thread,
and worse, is not inherited from the calling thread.  Due to this,
worker threads were not properly seeded.

Reported by Marc Bevand.
  • Loading branch information...
Ruslan Ermilov
Ruslan Ermilov committed Aug 3, 2016
1 parent 38ca99c commit e62a16e8f60b7f66418eb2d4084025b98f4c3575
Showing with 2 additions and 0 deletions.
  1. +2 −0 src/os/win32/ngx_process_cycle.c
@@ -764,6 +764,8 @@ ngx_worker_thread(void *data)
ngx_int_t n;
ngx_cycle_t *cycle;
srand((ngx_pid << 16) ^ (unsigned) ngx_time());
cycle = (ngx_cycle_t *) ngx_cycle;
for (n = 0; cycle->modules[n]; n++) {

0 comments on commit e62a16e

Please sign in to comment.