summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzat Khuzhin <azat@libevent.org>2020-04-09 02:16:15 +0300
committerAzat Khuzhin <azat@libevent.org>2020-05-04 23:58:28 +0300
commit9543f31a1a6cc2f919f57bfc2fd55068262a3f27 (patch)
treefa1653a9e144ed25236e5b188f569ecb304dc1fe
parente703c034cbc7c8a58cee77db6c7e81d63f286ad5 (diff)
downloadlibevent-9543f31a1a6cc2f919f57bfc2fd55068262a3f27.tar.gz
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.
-rw-r--r--evmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/evmap.c b/evmap.c
index ffc991f5..e4e35c68 100644
--- a/evmap.c
+++ b/evmap.c
@@ -432,7 +432,7 @@ evmap_io_active_(struct event_base *base, evutil_socket_t fd, short events)
if (NULL == ctx)
return;
LIST_FOREACH(ev, &ctx->events, ev_io_next) {
- if (ev->ev_events & events)
+ if (ev->ev_events & (events & ~EV_ET))
event_active_nolock_(ev, ev->ev_events & events, 1);
}
}