about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2014-05-09 00:47:02 +0000
committerEric Wong <e@80x24.org>2014-05-09 01:39:59 +0000
commit9c52c2a0daf9a182a4816ea0b51a18e6e1db4fd0 (patch)
treecf7971be4cbe4bc14ed0dd9a321fb438367f7c1f
parent8a42d8ca60867bff0d28c9fb41e7e7f0485f1124 (diff)
downloadyahns-9c52c2a0daf9a182a4816ea0b51a18e6e1db4fd0.tar.gz
When daemonizing, it is possible for the grandparent to be
terminated by another process before the master can notify
it.  Do not abort the master in this case.

unicorn commit 27ae210dde9228cfa96ea6b0f3a7e4047d3f70a4
-rw-r--r--lib/yahns/server.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/yahns/server.rb b/lib/yahns/server.rb
index ddba8f2..a6462df 100644
--- a/lib/yahns/server.rb
+++ b/lib/yahns/server.rb
@@ -203,7 +203,11 @@ class Yahns::Server # :nodoc:
 
   def daemon_ready
     @daemon_pipe.respond_to?(:syswrite) or return
-    @daemon_pipe.syswrite("#$$")
+    begin
+      @daemon_pipe.syswrite("#$$")
+    rescue => e
+      @logger.warn("grandparent died too soon?: #{e.message} (#{e.class})")
+    end
     @daemon_pipe.close
     @daemon_pipe = true # for SIGWINCH
   end