2013-08-26 64 views
0

我有幾個線程,在epoll_wait()上等待相同epoll_fd。 epoll的組中的描述是建立在這樣:EPOLLHUP是否可以觸發EPORONESHOT禁用的描述符事件?

struct epoll_event event; 
event.events = EPOLLIN | EPOLLONESHOT; 
event.data.fd = fd; 

EPOLLONESHOT的目的是保證,每一個描述符僅在一個線程在同一時間處理。如果一個線程收到EPOLLIN事件,並且具有fd,那麼EPOLLHUPEPOLLERR是否可以在具有相同fd的另一個線程中觸發事件?

我建議他們不能 - 因爲描述符因EPOLLONESHOT而被禁用。但如果他們可以 - 我可以用EPOLLRDHUP代替嗎?當描述符通過任何方式變爲無效/關閉/斷開連接時,它會被觸發至少一次

回答

0

似乎被禁用的描述符不會收到EPOLLHUP

相關問題