]> git.llucax.com Git - software/libev.git/blobdiff - ev.c
more thorough renaming, might even work now
[software/libev.git] / ev.c
diff --git a/ev.c b/ev.c
index 88e3474c05a55318f8eff73245275114bd0e14b9..08612aafa4c4696913d2c820375a78b9d64ce151 100644 (file)
--- a/ev.c
+++ b/ev.c
@@ -156,12 +156,6 @@ extern "C" {
 
 /**/
 
 
 /**/
 
-/* darwin simply cannot be helped */
-#ifdef __APPLE__
-# undef EV_USE_POLL
-# undef EV_USE_KQUEUE
-#endif
-
 #ifndef CLOCK_MONOTONIC
 # undef EV_USE_MONOTONIC
 # define EV_USE_MONOTONIC 0
 #ifndef CLOCK_MONOTONIC
 # undef EV_USE_MONOTONIC
 # define EV_USE_MONOTONIC 0
@@ -466,7 +460,7 @@ fd_reify (EV_P)
 
       anfd->reify = 0;
 
 
       anfd->reify = 0;
 
-      method_modify (EV_A_ fd, anfd->events, events);
+      backend_modify (EV_A_ fd, anfd->events, events);
       anfd->events = events;
     }
 
       anfd->events = events;
     }
 
@@ -534,7 +528,7 @@ fd_enomem (EV_P)
       }
 }
 
       }
 }
 
-/* usually called after fork if method needs to re-arm all fds from scratch */
+/* usually called after fork if backend needs to re-arm all fds from scratch */
 static void
 fd_rearm_all (EV_P)
 {
 static void
 fd_rearm_all (EV_P)
 {
@@ -787,15 +781,47 @@ enable_secure (void)
 }
 
 unsigned int
 }
 
 unsigned int
-ev_method (EV_P)
+ev_supported_backends (void)
+{
+  unsigned int flags = 0;
+
+  if (EV_USE_PORT  ) flags |= EVBACKEND_PORT;
+  if (EV_USE_KQUEUE) flags |= EVBACKEND_KQUEUE;
+  if (EV_USE_EPOLL ) flags |= EVBACKEND_EPOLL;
+  if (EV_USE_POLL  ) flags |= EVBACKEND_POLL;
+  if (EV_USE_SELECT) flags |= EVBACKEND_SELECT;
+  
+  return flags;
+}
+
+unsigned int
+ev_recommended_backends (void)
+{
+  unsigned int flags = ev_recommended_backends ();
+
+#ifndef __NetBSD__
+  /* kqueue is borked on everything but netbsd apparently */
+  /* it usually doesn't work correctly on anything but sockets and pipes */
+  flags &= ~EVBACKEND_KQUEUE;
+#endif
+#ifdef __APPLE__
+  // flags &= ~EVBACKEND_KQUEUE; for documentation
+  flags &= ~EVBACKEND_POLL;
+#endif
+
+  return flags;
+}
+
+unsigned int
+ev_backend (EV_P)
 {
 {
-  return method;
+  return backend;
 }
 
 static void
 loop_init (EV_P_ unsigned int flags)
 {
 }
 
 static void
 loop_init (EV_P_ unsigned int flags)
 {
-  if (!method)
+  if (!backend)
     {
 #if EV_USE_MONOTONIC
       {
     {
 #if EV_USE_MONOTONIC
       {
@@ -815,31 +841,24 @@ loop_init (EV_P_ unsigned int flags)
           && getenv ("LIBEV_FLAGS"))
         flags = atoi (getenv ("LIBEV_FLAGS"));
 
           && getenv ("LIBEV_FLAGS"))
         flags = atoi (getenv ("LIBEV_FLAGS"));
 
-      if (!(flags & EVMETHOD_ALL))
-        {
-          flags |= EVMETHOD_ALL;
-#if EV_USE_KQUEUE && !defined (__NetBSD__)
-          /* kqueue is borked on everything but netbsd apparently */
-          /* it usually doesn't work correctly on anything but sockets and pipes */
-          flags &= ~EVMETHOD_KQUEUE;
-#endif
-        }
+      if (!(flags & 0x0000ffffUL))
+        flags |= ev_recommended_backends ();
 
 
-      method = 0;
+      backend = 0;
 #if EV_USE_PORT
 #if EV_USE_PORT
-      if (!method && (flags & EVMETHOD_PORT  )) method = port_init   (EV_A_ flags);
+      if (!backend && (flags & EVBACKEND_PORT  )) backend = port_init   (EV_A_ flags);
 #endif
 #if EV_USE_KQUEUE
 #endif
 #if EV_USE_KQUEUE
-      if (!method && (flags & EVMETHOD_KQUEUE)) method = kqueue_init (EV_A_ flags);
+      if (!backend && (flags & EVBACKEND_KQUEUE)) backend = kqueue_init (EV_A_ flags);
 #endif
 #if EV_USE_EPOLL
 #endif
 #if EV_USE_EPOLL
-      if (!method && (flags & EVMETHOD_EPOLL )) method = epoll_init  (EV_A_ flags);
+      if (!backend && (flags & EVBACKEND_EPOLL )) backend = epoll_init  (EV_A_ flags);
 #endif
 #if EV_USE_POLL
 #endif
 #if EV_USE_POLL
-      if (!method && (flags & EVMETHOD_POLL  )) method = poll_init   (EV_A_ flags);
+      if (!backend && (flags & EVBACKEND_POLL  )) backend = poll_init   (EV_A_ flags);
 #endif
 #if EV_USE_SELECT
 #endif
 #if EV_USE_SELECT
-      if (!method && (flags & EVMETHOD_SELECT)) method = select_init (EV_A_ flags);
+      if (!backend && (flags & EVBACKEND_SELECT)) backend = select_init (EV_A_ flags);
 #endif
 
       ev_init (&sigev, sigcb);
 #endif
 
       ev_init (&sigev, sigcb);
@@ -853,19 +872,19 @@ loop_destroy (EV_P)
   int i;
 
 #if EV_USE_PORT
   int i;
 
 #if EV_USE_PORT
-  if (method == EVMETHOD_PORT  ) port_destroy   (EV_A);
+  if (backend == EVBACKEND_PORT  ) port_destroy   (EV_A);
 #endif
 #if EV_USE_KQUEUE
 #endif
 #if EV_USE_KQUEUE
-  if (method == EVMETHOD_KQUEUE) kqueue_destroy (EV_A);
+  if (backend == EVBACKEND_KQUEUE) kqueue_destroy (EV_A);
 #endif
 #if EV_USE_EPOLL
 #endif
 #if EV_USE_EPOLL
-  if (method == EVMETHOD_EPOLL ) epoll_destroy  (EV_A);
+  if (backend == EVBACKEND_EPOLL ) epoll_destroy  (EV_A);
 #endif
 #if EV_USE_POLL
 #endif
 #if EV_USE_POLL
-  if (method == EVMETHOD_POLL  ) poll_destroy   (EV_A);
+  if (backend == EVBACKEND_POLL  ) poll_destroy   (EV_A);
 #endif
 #if EV_USE_SELECT
 #endif
 #if EV_USE_SELECT
-  if (method == EVMETHOD_SELECT) select_destroy (EV_A);
+  if (backend == EVBACKEND_SELECT) select_destroy (EV_A);
 #endif
 
   for (i = NUMPRI; i--; )
 #endif
 
   for (i = NUMPRI; i--; )
@@ -881,20 +900,20 @@ loop_destroy (EV_P)
   array_free (prepare, EMPTY0);
   array_free (check, EMPTY0);
 
   array_free (prepare, EMPTY0);
   array_free (check, EMPTY0);
 
-  method = 0;
+  backend = 0;
 }
 
 static void
 loop_fork (EV_P)
 {
 #if EV_USE_PORT
 }
 
 static void
 loop_fork (EV_P)
 {
 #if EV_USE_PORT
-  if (method == EVMETHOD_PORT  ) port_fork   (EV_A);
+  if (backend == EVBACKEND_PORT  ) port_fork   (EV_A);
 #endif
 #if EV_USE_KQUEUE
 #endif
 #if EV_USE_KQUEUE
-  if (method == EVMETHOD_KQUEUE) kqueue_fork (EV_A);
+  if (backend == EVBACKEND_KQUEUE) kqueue_fork (EV_A);
 #endif
 #if EV_USE_EPOLL
 #endif
 #if EV_USE_EPOLL
-  if (method == EVMETHOD_EPOLL ) epoll_fork  (EV_A);
+  if (backend == EVBACKEND_EPOLL ) epoll_fork  (EV_A);
 #endif
 
   if (ev_is_active (&sigev))
 #endif
 
   if (ev_is_active (&sigev))
@@ -925,7 +944,7 @@ ev_loop_new (unsigned int flags)
 
   loop_init (EV_A_ flags);
 
 
   loop_init (EV_A_ flags);
 
-  if (ev_method (EV_A))
+  if (ev_backend (EV_A))
     return loop;
 
   return 0;
     return loop;
 
   return 0;
@@ -968,7 +987,7 @@ ev_default_loop (unsigned int flags)
 
       loop_init (EV_A_ flags);
 
 
       loop_init (EV_A_ flags);
 
-      if (ev_method (EV_A))
+      if (ev_backend (EV_A))
         {
           siginit (EV_A);
 
         {
           siginit (EV_A);
 
@@ -1014,7 +1033,7 @@ ev_default_fork (void)
   struct ev_loop *loop = ev_default_loop_ptr;
 #endif
 
   struct ev_loop *loop = ev_default_loop_ptr;
 #endif
 
-  if (method)
+  if (backend)
     postfork = 1;
 }
 
     postfork = 1;
 }
 
@@ -1256,14 +1275,14 @@ ev_loop (EV_P_ int flags)
 
           if (timercnt)
             {
 
           if (timercnt)
             {
-              ev_tstamp to = ((WT)timers [0])->at - mn_now + method_fudge;
+              ev_tstamp to = ((WT)timers [0])->at - mn_now + backend_fudge;
               if (block > to) block = to;
             }
 
 #if EV_PERIODICS
           if (periodiccnt)
             {
               if (block > to) block = to;
             }
 
 #if EV_PERIODICS
           if (periodiccnt)
             {
-              ev_tstamp to = ((WT)periodics [0])->at - ev_rt_now + method_fudge;
+              ev_tstamp to = ((WT)periodics [0])->at - ev_rt_now + backend_fudge;
               if (block > to) block = to;
             }
 #endif
               if (block > to) block = to;
             }
 #endif
@@ -1271,7 +1290,7 @@ ev_loop (EV_P_ int flags)
           if (expect_false (block < 0.)) block = 0.;
         }
 
           if (expect_false (block < 0.)) block = 0.;
         }
 
-      method_poll (EV_A_ block);
+      backend_poll (EV_A_ block);
 
       /* update ev_rt_now, do magic */
       time_update (EV_A);
 
       /* update ev_rt_now, do magic */
       time_update (EV_A);