0
我有幾個線程,在epoll_wait()
上等待相同epoll_fd
。 epoll的組中的描述是建立在這樣:EPOLLHUP是否可以觸發EPORONESHOT禁用的描述符事件?
struct epoll_event event;
event.events = EPOLLIN | EPOLLONESHOT;
event.data.fd = fd;
的EPOLLONESHOT
的目的是保證,每一個描述符僅在一個線程在同一時間處理。如果一個線程收到EPOLLIN
事件,並且具有fd
,那麼EPOLLHUP
或EPOLLERR
是否可以在具有相同fd
的另一個線程中觸發事件?
我建議他們不能 - 因爲描述符因EPOLLONESHOT
而被禁用。但如果他們可以 - 我可以用EPOLLRDHUP
代替嗎?當描述符通過任何方式變爲無效/關閉/斷開連接時,它會被觸發至少一次?