Lockup on poll()
Sometimes, the updater locks up on a poll() call. It seems there's a race condition in libevent and the SIGCHLD arrives at a wrong time, not waking up the poll. Work around this problem somehow ‒ providing a timeout, doing some trick with self-pipe ourselves or trying to force different backend than poll.