diff --git a/src/ev_epoll.c b/src/ev_epoll.c index f35e1c29b..970c0fe70 100644 --- a/src/ev_epoll.c +++ b/src/ev_epoll.c @@ -204,8 +204,10 @@ static void _do_poll(struct poller *p, int exp, int wake) continue; } - if (!(fdtab[fd].update_mask & ti->ltid_bit)) + if (!(fdtab[fd].update_mask & ti->ltid_bit)) { + fd_drop_tgid(fd); continue; + } done_update_polling(fd); diff --git a/src/ev_evports.c b/src/ev_evports.c index 19d572c66..2530b39c0 100644 --- a/src/ev_evports.c +++ b/src/ev_evports.c @@ -160,8 +160,10 @@ static void _do_poll(struct poller *p, int exp, int wake) continue; } - if (!(fdtab[fd].update_mask & ti->ltid_bit)) + if (!(fdtab[fd].update_mask & ti->ltid_bit)) { + fd_drop_tgid(fd); continue; + } done_update_polling(fd); diff --git a/src/ev_kqueue.c b/src/ev_kqueue.c index 3d555ec7e..3c8787ffd 100644 --- a/src/ev_kqueue.c +++ b/src/ev_kqueue.c @@ -134,8 +134,10 @@ static void _do_poll(struct poller *p, int exp, int wake) continue; } - if (!(fdtab[fd].update_mask & ti->ltid_bit)) + if (!(fdtab[fd].update_mask & ti->ltid_bit)) { + fd_drop_tgid(fd); continue; + } done_update_polling(fd);