isectd loops when worker crashes
Brought to you by:
tgagne
An interesting phenomena happens when a worker crashes
and the client tries to disconnect. Unsure exactly
why, but client.blocked is true and the socket is never
read, but the socket's descriptor remains in the read
set so select() keeps finding it. Since select() keeps
coming back read-ready but the client isn't read from
isectd loops, consuming all available CPU.
It keeps working, but steals CPU.
Logged In: YES
user_id=7439
A quick kludge to unblock the client's id. isectd will try
reading from it and discover the client has terminated.