Avoid triggering wrong events with EV_ET set For the event at least something except EV_ET should be set, so checking ev->ev_events with "triggered" events is wrong, because EV_ET is always passed (see epoll), since it will be filtered out if it is not set in event.