about summary refs log tree commit homepage
path: root/lib/unicorn.rb
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-11-14 00:23:19 +0000
committerEric Wong <normalperson@yhbt.net>2009-11-13 17:08:24 -0800
commite4256da292f9626d7dfca60e08f65651a0a9139a (patch)
tree5d90f73ce87cb5771f1f1f7bac007185028e80ea /lib/unicorn.rb
parent1b7b4d160610dd538eee624ef8eb8c6ed301a2b5 (diff)
downloadunicorn-e4256da292f9626d7dfca60e08f65651a0a9139a.tar.gz
Leaving the EOFError exception as-is bad because most
applications/frameworks run an application-wide exception
handler to pretty-print and/or log the exception with a huge
backtrace.

Since there's absolutely nothing we can do in the server-side
app to deal with clients prematurely shutting down, having a
backtrace does not make sense.  Having a backtrace can even be
harmful since it creates unnecessary noise for application
engineers monitoring or tracking down real bugs.
Diffstat (limited to 'lib/unicorn.rb')
-rw-r--r--lib/unicorn.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/unicorn.rb b/lib/unicorn.rb
index a696402..c6c311e 100644
--- a/lib/unicorn.rb
+++ b/lib/unicorn.rb
@@ -8,6 +8,12 @@ autoload :Rack, 'rack'
 # a Unicorn web server.  It contains a minimalist HTTP server with just enough
 # functionality to service web application requests fast as possible.
 module Unicorn
+
+  # raise this inside TeeInput when a client disconnects inside the
+  # application dispatch
+  class ClientShutdown < EOFError
+  end
+
   autoload :Const, 'unicorn/const'
   autoload :HttpRequest, 'unicorn/http_request'
   autoload :HttpResponse, 'unicorn/http_response'