Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy capable of fully buffering both the the request and response in between unicorn and slow clients. * http://unicorn.bogomips.org/ * public list: unicorn-public@bogomips.org * mail archives: http://bogomips.org/unicorn-public/ * git clone git://bogomips.org/unicorn.git * http://unicorn.bogomips.org/NEWS.atom.xml * nntp://news.public-inbox.org/inbox.comp.lang.ruby.unicorn Changes: unicorn 5.1.0 - rack is optional, again Note: no code changes since 5.1.0.pre1 from January.^WNo, wait, last minute performance improvement added today. See below. The big change is rack is not required (but still recommended). Applications are expected to depend on rack on their own so they can specify the version of rack they prefer without unicorn pulling in a newer, potentially incompatible version. unicorn will always attempt to work with multiple versions of rack as practical. The HTTP parser also switched to using the TypedData C-API for extra type safety and memory usage accounting support in the 'objspace' extension. Thanks to Adam Duke to bringing the rack change to our attention and Aaron Patterson for helping with the matter. Last minute change: we now support the new leftpad() syscall under Linux for major performance and security improvements: http://mid.gmane.org/1459463613-32473-1-git-send-email-richard@nod.at 8^H9 changes since 5.0.1: http: TypedData C-API conversion various documentation updates doc: bump olddoc to ~> 1.2 for extra NNTP URL rack is optional at runtime, required for dev doc update for ClientShutdown exceptions class unicorn 5.1.0.pre1 - rack is optional, again doc: reference --keep-file-descriptors for "bundle exec" doc: further trimming to reduce noise use leftpad Linux syscall for speed!
Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy capable of fully buffering both the the request and response in between unicorn and slow clients. * http://unicorn.bogomips.org/ * public list: unicorn-public@bogomips.org * mail archives: http://bogomips.org/unicorn-public/ * git clone git://bogomips.org/unicorn.git * http://unicorn.bogomips.org/NEWS.atom.xml * nntp://news.public-inbox.org/inbox.comp.lang.ruby.unicorn This is a pre-release, you will need to specify the version to install explicitly when using RubyGems. Changes: unicorn 5.1.0.pre1 - rack is optional, again The big change is rack is not required (but still recommended). Applications are expected to depend on rack on their own so they can specify the version of rack they prefer without unicorn pulling in a newer, potentially incompatible version. unicorn will always attempt to work with multiple versions of rack as practical. The HTTP parser also switched to using the TypedData C-API for extra type safety and memory usage accounting support in the 'objspace' extension. Thanks to Adam Duke to bringing the rack change to our attention and Aaron Patterson for helping with the matter. There might be more documentation-related changes before 5.1.0 final. I am considering dropping pandoc from manpage generation and relying on pod2man (from Perl) because it has a wider install base. 5 changes since v5.0.1: http: TypedData C-API conversion various documentation updates doc: bump olddoc to ~> 1.2 for extra NNTP URL rack is optional at runtime, required for dev doc update for ClientShutdown exceptions class
State explicitly applications should not rely on it, and instead rescue the generic EOFError exception. This class will stick around because there may inevitably be things which rely on it, but we should not encourage it, either. --- lib/unicorn.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/unicorn.rb b/lib/unicorn.rb index bb66b61..f122563 100644 --- a/lib/unicorn.rb +++ b/lib/unicorn.rb @@ -25,7 +25,9 @@ module Unicorn # application dispatch. This is always raised with an empty backtrace # since there is nothing in the application stack that is responsible # for client shutdowns/disconnects. This exception is visible to Rack - # applications unless PrereadInput middleware is loaded. + # applications unless PrereadInput middleware is loaded. This + # is a subclass of the standard EOFError class and applications should + # not rescue it explicitly, but rescue EOFError instead. ClientShutdown = Class.new(EOFError) # :stopdoc: -- EW