在我的情況下,在兩個epoll_wait循環(兩個線程)中使用相同的fd(套接字),一個循環僅用於讀取(pollin),另一個僅用於寫入(pollout),pollout僅在I有數據要寫。通常,當套接字被peer關閉,pollin首先接收,是否有任何最簡單的方法來通知寫循環觸發pollout或pollerr事件(做一些乾淨的工作,並從epoll中刪除fd)?我在套接字被peer關閉後直接從read循環嘗試epoll_ctl(EPOLLOUT),但它只能在某個系統上工作。我也想添加timerfd來通知寫入循環。在我的情況下,從epoll中刪除fd的最佳方法是什麼?
0
A
回答
1
只需關閉插座fd。它會自動註銷epoll。我問過類似的問題,去年,並得到這樣的回答:
Is it necessary to deregister a socket from epoll before closing it?
如果你需要做額外的清理上此套接字的寫線程,只要有你寫的線程也聽的讀端管道fd。通過向管道寫入單字節來通知此線程(但在將消息排隊到線程安全的消息隊列之前不能指示要清除的內容)。
當epoll_wait返回管道上的指示數據時,讀取管道中的字節,使用隊列中的消息並執行相應的清理工作。
希望這會有所幫助。
相關問題
- 1. 在我的情況下減少sql查詢的最佳方法是什麼
- 2. 從NSString中刪除路徑的最佳方法是什麼?
- 3. 在JavaScript中刪除對象的最佳方法是什麼?
- 4. 在我的情況下注冊新用戶的最佳做法是什麼?
- 5. 在我的情況下避免幻數的最佳方法
- 6. 在我的情況下實現Filewatching的最佳方法?
- 7. 在以下情況下與git協作的最佳做法是什麼?
- 8. 爲什麼insertBefore,在這種情況下,刪除我的元素?
- 9. 什麼是從嵌套的JavaScript對象中刪除屬性的最佳方法?
- 10. 從數組中刪除數組的值的最佳方法是什麼?
- 11. 在CursorAdapter中刪除一行的最佳方式是什麼?
- 12. 在MVC中刪除圖像的最佳方式是什麼?
- 13. 讓CloudFormation堆棧自我刪除的最佳方式是什麼?
- 14. 這種情況下的最佳實踐是什麼 - jQuery&CSS?
- 15. 什麼是刪除警告的最佳方法?
- 16. 用jQuery刪除表格行的最佳方法是什麼?
- 17. 刪除部分字符串的最佳方法是什麼? (C#)
- 18. 刪除超過100,000個文件的最佳方法是什麼?
- 19. 什麼是刪除佈局元素的最佳方法
- 20. 刪除矢量指針的最佳方法是什麼?
- 21. 刪除duplicateMovieClip的最佳方法是什麼?
- 22. 從xml字符串中刪除相同標籤的最佳方法是什麼?
- 23. 從IEnumerable <SelectListItem>中刪除項目的最佳方法是什麼?
- 24. 從數組中刪除第一個元素的最佳方法是什麼?
- 25. 從表格中刪除所有數據的最佳方法是什麼?
- 26. 從音頻文件中刪除回聲的最佳方法是什麼?
- 27. 從Immutable.js中刪除多個嵌套關鍵字的最佳方法是什麼?
- 28. 從應用程序中刪除死代碼的最佳方法是什麼?
- 29. 什麼是從Flyway遷移中刪除可重複腳本的最佳方法
- 30. 從字符串中可靠地刪除unicode的最佳方法是什麼