From: Markus Wanner on
This patch adds the capability for the coordinator to listen on sockets
while waiting for imessages to arrive. Before the coordinator just slept
until a signal arrives, notifying the coordinator about an internal message.

Major caveat here: I'm using pselect(), which might still not be
portable enough. The work-around for platforms on which a signal doesn't
interrupt select has been removed as well. I can't think of any way to
support platforms as broken as that.