]> git.llucax.com Git - software/libev.git/blobdiff - ev.c
*** empty log message ***
[software/libev.git] / ev.c
diff --git a/ev.c b/ev.c
index 3903a6cd42ceb14b5fa0626ee4718a50192a82f4..88e3474c05a55318f8eff73245275114bd0e14b9 100644 (file)
--- a/ev.c
+++ b/ev.c
@@ -43,26 +43,53 @@ extern "C" {
 #  ifndef EV_USE_REALTIME
 #   define EV_USE_REALTIME  1
 #  endif
 #  ifndef EV_USE_REALTIME
 #   define EV_USE_REALTIME  1
 #  endif
+# else
+#  ifndef EV_USE_MONOTONIC
+#   define EV_USE_MONOTONIC 0
+#  endif
+#  ifndef EV_USE_REALTIME
+#   define EV_USE_REALTIME  0
+#  endif
 # endif
 
 # endif
 
-# if HAVE_SELECT && HAVE_SYS_SELECT_H && !defined (EV_USE_SELECT)
-#  define EV_USE_SELECT 1
+# ifndef EV_USE_SELECT
+#  if HAVE_SELECT && HAVE_SYS_SELECT_H
+#   define EV_USE_SELECT 1
+#  else
+#   define EV_USE_SELECT 0
+#  endif
 # endif
 
 # endif
 
-# if HAVE_POLL && HAVE_POLL_H && !defined (EV_USE_POLL)
-#  define EV_USE_POLL 1
+# ifndef EV_USE_POLL
+#  if HAVE_POLL && HAVE_POLL_H
+#   define EV_USE_POLL 1
+#  else
+#   define EV_USE_POLL 0
+#  endif
 # endif
 # endif
-
-# if HAVE_EPOLL_CTL && HAVE_SYS_EPOLL_H && !defined (EV_USE_EPOLL)
-#  define EV_USE_EPOLL 1
+   
+# ifndef EV_USE_EPOLL
+#  if HAVE_EPOLL_CTL && HAVE_SYS_EPOLL_H
+#   define EV_USE_EPOLL 1
+#  else
+#   define EV_USE_EPOLL 0
+#  endif
 # endif
 # endif
-
-# if HAVE_KQUEUE && HAVE_SYS_EVENT_H && HAVE_SYS_QUEUE_H && !defined (EV_USE_KQUEUE)
-#  define EV_USE_KQUEUE 1
+   
+# ifndef EV_USE_KQUEUE
+#  if HAVE_KQUEUE && HAVE_SYS_EVENT_H && HAVE_SYS_QUEUE_H
+#   define EV_USE_KQUEUE 1
+#  else
+#   define EV_USE_KQUEUE 0
+#  endif
 # endif
 # endif
-
-# if HAVE_PORT_H && HAVE_PORT_CREATE && !defined (EV_USE_PORT)
-#  define EV_USE_PORT 1
+   
+# ifndef EV_USE_PORT
+#  if HAVE_PORT_H && HAVE_PORT_CREATE
+#   define EV_USE_PORT 1
+#  else
+#   define EV_USE_PORT 0
+#  endif
 # endif
 
 #endif
 # endif
 
 #endif
@@ -783,11 +810,20 @@ loop_init (EV_P_ unsigned int flags)
       now_floor = mn_now;
       rtmn_diff = ev_rt_now - mn_now;
 
       now_floor = mn_now;
       rtmn_diff = ev_rt_now - mn_now;
 
-      if (!(flags & EVFLAG_NOENV) && !enable_secure () && getenv ("LIBEV_FLAGS"))
+      if (!(flags & EVFLAG_NOENV)
+          && !enable_secure ()
+          && getenv ("LIBEV_FLAGS"))
         flags = atoi (getenv ("LIBEV_FLAGS"));
 
         flags = atoi (getenv ("LIBEV_FLAGS"));
 
-      if (!(flags & 0x0000ffff))
-        flags |= 0x0000ffff;
+      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
+        }
 
       method = 0;
 #if EV_USE_PORT
 
       method = 0;
 #if EV_USE_PORT