diff options
| -rw-r--r-- | Changes | 2 | ||||
| -rw-r--r-- | ev_kqueue.c | 8 | 
2 files changed, 8 insertions, 2 deletions
| @@ -8,6 +8,8 @@ TODO: win32 write() to socket for signal handling  	- applied win32 fixes by Michael Lenaghan (also James Mansion).  	- replace EV_MINIMAL by EV_FEATURES.          - remove dependency on sys/queue.h on freebsd (patch by Vanilla Hsu). +        - add (undocumented) EV_ENABLE when adding events with kqueue, +          this might help (helpfully pointed out by Tilghman Lesher).          - configure now prepends -O3, not appends it, so one can still            override it.          - disable poll backend on AIX, the poll header spams the namespace diff --git a/ev_kqueue.c b/ev_kqueue.c index 53f2dc1..8e46c2a 100644 --- a/ev_kqueue.c +++ b/ev_kqueue.c @@ -52,6 +52,10 @@ kqueue_change (EV_P_ int fd, int filter, int flags, int fflags)    EV_SET (&kqueue_changes [kqueue_changecnt - 1], fd, filter, flags, fflags, 0, 0);  } +/* OS X at least needs this */ +#ifndef EV_ENABLE +# define EV_ENABLE 0 +#endif  #ifndef NOTE_EOF  # define NOTE_EOF 0  #endif @@ -72,10 +76,10 @@ kqueue_modify (EV_P_ int fd, int oev, int nev)    /* event requests even when oev == nev */    if (nev & EV_READ) -    kqueue_change (EV_A_ fd, EVFILT_READ , EV_ADD, NOTE_EOF); +    kqueue_change (EV_A_ fd, EVFILT_READ , EV_ADD | EV_ENABLE, NOTE_EOF);    if (nev & EV_WRITE) -    kqueue_change (EV_A_ fd, EVFILT_WRITE, EV_ADD, NOTE_EOF); +    kqueue_change (EV_A_ fd, EVFILT_WRITE, EV_ADD | EV_ENABLE, NOTE_EOF);  }  static void | 
