about summary refs log tree commit homepage
path: root/lib/unicorn/configurator.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-03-18 01:59:17 -0700
committerEric Wong <normalperson@yhbt.net>2009-03-18 14:30:46 -0700
commit29c6af908c2bd1109be175c34b89c45c8cc2f60b (patch)
tree076b9cf2a415504001f2aa63af1cc74bfd02052e /lib/unicorn/configurator.rb
parent2373b663049df69a168f1e876e817a49d8ed8a7b (diff)
downloadunicorn-29c6af908c2bd1109be175c34b89c45c8cc2f60b.tar.gz
In nearly every app, if the current working directory
disappears, the app becomes broken, sometimes subtly.  It can be
especially broken when preload_app is false (the default).

So just shut ourselves down to spare ourselves the
wasted CPU cycles on a dead app.

As a (hopefully) pleasant side effect, this allows
configurations with preload_app==false (the default) to do
application code reloads via SIGHUP (in addition to unicorn
config reloads).
Diffstat (limited to 'lib/unicorn/configurator.rb')
-rw-r--r--lib/unicorn/configurator.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/unicorn/configurator.rb b/lib/unicorn/configurator.rb
index dd9ae3b..ae74c2b 100644
--- a/lib/unicorn/configurator.rb
+++ b/lib/unicorn/configurator.rb
@@ -194,6 +194,10 @@ module Unicorn
     # properly close/reopen sockets.  Files opened for logging do not
     # have to be reopened as (unbuffered-in-userspace) files opened with
     # the File::APPEND flag are written to atomically on UNIX.
+    #
+    # In addition to reloading the unicorn-specific config settings,
+    # SIGHUP will reload application code in the working
+    # directory/symlink when workers are gracefully restarted.
     def preload_app(bool)
       case bool
       when TrueClass, FalseClass