在内核把发生的事件和文件描述符都返回给用户空间之后,会判断if (epi->event.events & EPOLLONESHOT)
,如果为真,那么就会将events修改为EP_PRIVATE_BITS
。而这个位图定义为:
#define EP_PRIVATE_BITS (EPOLLWAKEUP | EPOLLONESHOT | EPOLLET | EPOLLEXCLUSIVE)
也就是说,用户自定义的关注事件都被清除了。
epolloneshot是怎么实现的
最新推荐文章于 2022-07-10 20:33:23 发布