When we stop an acceptor, we set the stop flag then shutdown the taskmaster. But the acceptor will only stop accepting after timeout and/or after the next connection; in the latter case, said connection will find itself without a taskmaster to process it, and will be dropped on the floor without being processed, while possibly leaking a file descriptor, meanwhile the user on the other end waits 5 minutes for a TCP timeout. That's not very nice, especially if stop is a normal part of frequent server rollouts.
To make things better, we could do one or both of these: 1- have the acceptor call the shutdown on the taskmaster after it catches its last request (or lack thereof). 2- have the acceptor use select or poll, so it can be notified of the stop in a timely fashion.
Would you accept a patch that does one or the other? What libraries are or aren't OK to pull into hunchentoot to achieve the second? [I suppose, any library that doesn't require linking a .so wrapper.]
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The hacker: someone who figured things out and made something cool happen. — Alan Schmitt