uloop: fix edge trigger handling on mac os x
authorFelix Fietkau <nbd@openwrt.org>
Tue, 18 Jun 2013 07:57:39 +0000 (09:57 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 18 Jun 2013 09:02:20 +0000 (11:02 +0200)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
uloop.c
uloop.h

diff --git a/uloop.c b/uloop.c
index db8cacd..3746520 100644 (file)
--- a/uloop.c
+++ b/uloop.c
@@ -181,6 +181,7 @@ static int uloop_fetch_events(int timeout)
 
                if (u->flags & ULOOP_EDGE_DEFER) {
                        u->flags &= ~ULOOP_EDGE_DEFER;
 
                if (u->flags & ULOOP_EDGE_DEFER) {
                        u->flags &= ~ULOOP_EDGE_DEFER;
+                       u->flags |= ULOOP_EDGE_TRIGGER;
                        register_kevent(u, u->flags);
                }
        }
                        register_kevent(u, u->flags);
                }
        }
diff --git a/uloop.h b/uloop.h
index 1d32c39..975e40b 100644 (file)
--- a/uloop.h
+++ b/uloop.h
@@ -56,7 +56,7 @@ struct uloop_fd
        bool error;
        bool registered;
 #ifdef USE_KQUEUE
        bool error;
        bool registered;
 #ifdef USE_KQUEUE
-       bool flags;
+       uint8_t flags;
 #endif
 };
 
 #endif
 };