[RFC PATCH v2] imapd.c: imapoptions: implement idle timeout
Robert Mueller
robm at fastmail.fm
Tue Sep 20 06:37:18 EDT 2016
> The thing is, during IDLE, we're not blocked on a read, we're blocked on
> a select (in idle_wait()). We don't even try to read from the client
> until the select tells us it's readable. If the client has dropped out,
> select never tells us it's readable, so we never try to read, so the
> timeout doesn't get checked, so we stay there indefinitely.
No, the select() call itself has a timeout, and idle_wait() will return
after that timeout gets hit.
> timeout. Comms between idled and imapd were handled with signals.
Yes, and it was buggy and evil. The pipe system that replaced it is much
saner.
--
Rob Mueller
robm at fastmail.fm
More information about the Cyrus-devel
mailing list