From e73e8cadd6b2b28e448710cffd85e32eb2083c83 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 2 Oct 2009 23:25:30 -0400 Subject: [PATCH] [event-loop] ignore EAGAIN Sometimes when debugging under gdb, epoll_wait spuriously returns EAGAIN. We treat it like EINTR now. --- src/libply/ply-event-loop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libply/ply-event-loop.c b/src/libply/ply-event-loop.c index 33bd52c7..7a757b08 100644 --- a/src/libply/ply-event-loop.c +++ b/src/libply/ply-event-loop.c @@ -1252,14 +1252,14 @@ ply_event_loop_process_pending_events (ply_event_loop_t *loop) if (number_of_received_events < 0) { - if (errno != EINTR) + if (errno != EINTR && errno != EAGAIN) { ply_event_loop_exit (loop, 255); return; } } } - while ((number_of_received_events < 0) && (errno == EINTR)); + while ((number_of_received_events < 0) && ((errno == EINTR) || (errno == EAGAIN))); for (i = 0; i < number_of_received_events; i++) {