about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/unicorn/http_server.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/unicorn/http_server.rb b/lib/unicorn/http_server.rb
index 2052d53..21cb9a1 100644
--- a/lib/unicorn/http_server.rb
+++ b/lib/unicorn/http_server.rb
@@ -120,6 +120,7 @@ class Unicorn::HttpServer
     # this pipe is used to wake us up from select(2) in #join when signals
     # are trapped.  See trap_deferred.
     SELF_PIPE.replace(Unicorn.pipe)
+    @master_pid = $$
 
     # setup signal handlers before writing pid file in case people get
     # trigger happy and send signals as soon as the pid file exists.
@@ -133,7 +134,6 @@ class Unicorn::HttpServer
     # we upgrade and the upgrade breaks during preload_app==true && build_app!
     self.pid = config[:pid]
 
-    self.master_pid = $$
     build_app! if preload_app
     bind_new_listeners!
 
@@ -390,6 +390,7 @@ class Unicorn::HttpServer
   end
 
   def awaken_master
+    return if $$ != @master_pid
     SELF_PIPE[1].kgio_trywrite('.') # wakeup master process from select
   end