Unicorn 4.8.1 - Rack HTTP server for fast clients and Unix

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.

Changes:

fix races/error handling in worker SIGQUIT handler

This protects us from two problems:

  1. we (or our app) somehow called IO#close on one of the sockets
    we listen on without removing it from the readers array.
    We’ll ignore IOErrors from IO#close and assume we wanted to
    close it.

  2. our SIGQUIT handler is interrupted by itself. This can happen as
    a fake signal from the master could be handled and a real signal
    from an outside user is sent to us (e.g. from unicorn-worker-killer)
    or if a user uses the killall(1) command.

Note: this is identical to the 4.8.1.1.g9b565 pushed out a few days ago.

This release just adds a fix to avoid a race condition during worker
startup.