]> git.llucax.com Git - software/libev.git/commitdiff
better fork
authorroot <root>
Tue, 6 Nov 2007 01:17:16 +0000 (01:17 +0000)
committerroot <root>
Tue, 6 Nov 2007 01:17:16 +0000 (01:17 +0000)
ev_epoll.c
ev_kqueue.c

index 2040103af6234c962a59a14cede0572ddcd1f801..9f5bd251cb299b09f356b412c34351ff227e7b26 100644 (file)
@@ -110,15 +110,10 @@ epoll_destroy (EV_P)
 static void
 epoll_fork (EV_P)
 {
-  for (;;)
-    {
-      epoll_fd = epoll_create (256);
-
-      if (epoll_fd >= 0)
-        break;
+  close (epoll_fd);
 
-      syserr ("(libev) epoll_create");
-    }
+  while ((epoll_fd = epoll_create (256)) < 0)
+    syserr ("(libev) epoll_create");
 
   fcntl (epoll_fd, F_SETFD, FD_CLOEXEC);
 
index 07d16e49df33425abba31050a5aef4adf0a79230..8d5021fc012e361bdc93bfac8c734ebff5a2c47c 100644 (file)
@@ -185,15 +185,10 @@ kqueue_destroy (EV_P)
 static void
 kqueue_fork (EV_P)
 {
-  for (;;)
-    {
-      kqueue_fd = kqueue ();
-
-      if (kqueue_fd >= 0)
-        break;
+  close (kqueue_fd);
 
-      syserr ("(libev) kqueue");
-    }
+  while ((kqueue_fd = kqueue ()) < 0)
+    syserr ("(libev) kqueue");
 
   fcntl (kqueue_fd, F_SETFD, FD_CLOEXEC);