diff --git a/kqueue.c b/kqueue.c index 9e48b704..a61a6057 100644 --- a/kqueue.c +++ b/kqueue.c @@ -248,8 +248,10 @@ kq_dispatch(void *arg, struct timeval *tv) if (!which) continue; - if (!(ev->ev_events & EV_PERSIST)) + if (!(ev->ev_events & EV_PERSIST)) { + ev->ev_flags &= ~EVLIST_X_KQINKERNEL; event_del(ev); + } event_active(ev, which, ev->ev_events & EV_SIGNAL ? events[i].data : 1);