Displaying 3 results from an estimated 3 matches for "self_pipe".
2013 Dec 09
2
[PATCH] rework master-to-worker signaling to use a pipe
...m the reader set
-  # once IO.select returns.  So we''re lazy and just close the pipe when
-  # a (rare) signal arrives in the worker and reinitialize the pipe later.
+  # * The workers immediately close the pipe they inherit.  See the
+  # Unicorn::Worker class for the pipe workers use.
   SELF_PIPE = []
 
   # signal queue used for self-piping
@@ -127,7 +119,7 @@ class Unicorn::HttpServer
     inherit_listeners!
     # this pipe is used to wake us up from select(2) in #join when signals
     # are trapped.  See trap_deferred.
-    init_self_pipe!
+    SELF_PIPE.replace(Unicorn.pipe)
 
     #...
2009 Oct 09
0
unicorn 0.93.3 - OpenBSD compatibility
...rge.org
* git://git.bogomips.org/unicorn.git
Changes:
This release fixes compatibility with OpenBSD (and possibly
other Unices with stricter fchmod(2) implementations) thanks to
Jeremy Evans.  Additionally there are small documentation
changes all around.
Eric Wong (12):
      doc: expand on the SELF_PIPE description
      fchmod heartbeat flips between 0/1 for compatibility
      examples/init.sh: remove "set -u"
      configurator: update with nginx fail_timeout=0 example
      PHILOSOPHY: clarify experience other deployments
      PHILOSOPHY: plug the Rainbows! spin-off project
      RE...
2011 Jun 16
7
[PATCH] replace fchmod()-based heartbeat with raindrops
...r = Worker.new(worker_nr, Unicorn::TmpIO.new)
+      worker = Worker.new(worker_nr)
       before_fork.call(self, worker)
       if pid = fork
         WORKERS[pid] = worker
@@ -549,10 +544,8 @@ class Unicorn::HttpServer
     proc_name "worker[#{worker.nr}]"
     START_CTX.clear
     init_self_pipe!
-    WORKERS.values.each { |other| other.tmp.close rescue nil }
     WORKERS.clear
     LISTENERS.each { |sock| sock.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) }
-    worker.tmp.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC)
     after_fork.call(self, worker) # can drop perms
     worker.user(*user) if us...