28
有在epoll的两个功能:epoll是否线程安全?
- epoll_ctl
- epoll_wait
他们是线程安全的,当我用同样的epoll_fd?
如果一个线程同时调用epoll_wait和其他调用epoll_ctl会发生什么?
有在epoll的两个功能:epoll是否线程安全?
他们是线程安全的,当我用同样的epoll_fd?
如果一个线程同时调用epoll_wait和其他调用epoll_ctl会发生什么?
它是线程安全的,但没有明确规定,很多文件 - 见http://linux.derkeiler.com/Mailing-Lists/Kernel/2006-03/msg00084.html
顺便说一句,你也可以有多个线程都在等待一个epoll_fd,但在这种情况下,它可以得到一个有点棘手(即你可能想使用边缘触发(EPOLLET)或单向模式(EPOLLONESHOT) - 请参阅http://linux.die.net/man/2/epoll_ctl)
您是否使用相同的epoll_fd? –
是的,我使用相同的epoll_fd。 – atomd
你能提供更多关于你的用法的细节吗?为什么你必须使用相同的epoll fd?如果你正在做一个RX/TX结构,你可以有一个epoll fd corrsepond到IN事件,一个对应于out事件(这是我在几个应用中使用的) –