My unicorn.rb has two listeners: listen "127.0.0.1:8080", :tcp_nopush => false listen "/var/run/unicorn.socket", :backlog => 1024
We found that because of the greedy attempt to accept new connections before calling select() in https://github.com/defunkt/unicorn/blob/981f561a726bb4307d01e4a09a308edba8d69fe3/lib/unicorn/http_server.rb#L707-L714, listeners on another socket stall out until the first listener is drained. We would expect Unicorn to round-robin between the two listeners, but that doesn't happen as long as there is work to be done for the first listener. We've verified that deleting that `redo` block fixes the problem. What do you think about the various options? 1. Only running that redo block if there is one listener 2. Removing the redo block entirely
