]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[event-loop] ignore EAGAIN
authorRay Strode <rstrode@redhat.com>
Sat, 3 Oct 2009 03:25:30 +0000 (23:25 -0400)
committerRay Strode <rstrode@redhat.com>
Sun, 4 Oct 2009 14:44:16 +0000 (10:44 -0400)
Sometimes when debugging under gdb, epoll_wait spuriously
returns EAGAIN.

We treat it like EINTR now.

src/libply/ply-event-loop.c

index 33bd52c7e7431600c3106cad14eab39ed7464251..7a757b080e836d1eaa8d8fd2059fed923b3ddeaf 100644 (file)
@@ -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++)
     {