]> git.llucax.com Git - software/libev.git/blobdiff - ev_kqueue.c
*** empty log message ***
[software/libev.git] / ev_kqueue.c
index 4fefceeec6eb9185c8194de6b2beeacf5b49285d..07d16e49df33425abba31050a5aef4adf0a79230 100644 (file)
@@ -87,7 +87,7 @@ kqueue_poll (EV_P_ ev_tstamp timeout)
   if (res < 0)
     { 
       if (errno != EINTR)
   if (res < 0)
     { 
       if (errno != EINTR)
-        syserr ();
+        syserr ("(libev) kevent");
 
       return;
     } 
 
       return;
     } 
@@ -185,7 +185,16 @@ kqueue_destroy (EV_P)
 static void
 kqueue_fork (EV_P)
 {
 static void
 kqueue_fork (EV_P)
 {
-  kqueue_fd = kqueue ();
+  for (;;)
+    {
+      kqueue_fd = kqueue ();
+
+      if (kqueue_fd >= 0)
+        break;
+
+      syserr ("(libev) kqueue");
+    }
+
   fcntl (kqueue_fd, F_SETFD, FD_CLOEXEC);
 
   /* re-register interest in fds */
   fcntl (kqueue_fd, F_SETFD, FD_CLOEXEC);
 
   /* re-register interest in fds */