I've created a new struct fd_queue_info_t that I believe can be used to monitor the number of idle workers and make sure that we don't accept more connections than we have available workers. I think by implementing this we can also clear out some of the extra cruft in the queue, only relying on a mutex to make sure we don't klobber the queue.
Most of this stuff could be optimized to use Ian's new atomic operators stuff too. I'll post a patch in the next couple hours. -aaron
