diff options
Diffstat (limited to 'lib/unicorn')
-rw-r--r-- | lib/unicorn/http_server.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/unicorn/http_server.rb b/lib/unicorn/http_server.rb index 2706568..69feb2f 100644 --- a/lib/unicorn/http_server.rb +++ b/lib/unicorn/http_server.rb @@ -487,7 +487,11 @@ class Unicorn::HttpServer def after_fork_internal @ready_pipe.close if @ready_pipe @ready_pipe = nil - srand # http://redmine.ruby-lang.org/issues/4338 + tmp = srand # http://redmine.ruby-lang.org/issues/4338 + + # The OpenSSL PRNG is seeded with only the pid, and apps with frequently + # dying workers can recycle pids + OpenSSL::Random.seed(tmp.to_s) if defined?(OpenSSL::Random) end def spawn_missing_workers |