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.
- [email protected]
fix races/error handling in worker SIGQUIT handler
This protects us from two problems:
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
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.