제목에서 알 수 있듯이 select() 또는 (직렬 통신 등의 경우) 다른 스레드에서 read()와 같은 블로킹 호출을 취소하려면 어떻게해야합니까? 이런 것들을 해결하는 전통적인 방법은 무엇입니까? 하나는 작은 시간 제한을 사용할 수 있고 그것은 아마 잘 작동하지만, 그것은 나에게 약간의 해킹처럼 보일 것입니다.select() 또는 read()와 같은 차단 호출을 취소하려면 어떻게해야합니까?
2
A
답변
3
select(2)
을 방해하는 전통적인 방법은 self-pipe trick
입니다. 입/출력 호출은 설명자가 비 블로킹이고 처리가 EAGAIN
인 것이 더 좋습니다.
0
이러한 상황에서는 작거나 즉각적인 제한 시간을 사용해야하며 다음 선택/읽기 시도가 수행되는시기/방법/이유를 처리하는 추가 논리를 사용해야합니다.
관련 문제
- 1. 링크 작업을 취소하려면 어떻게해야합니까?
- 2. 언어 설정을 취소하려면 어떻게해야합니까?
- 3. sajax를 사용하여 만든 ajax 호출을 취소하려면 어떻게합니까?
- 4. UIScrollView 줌 바운스를 취소하려면 어떻게해야합니까?
- 5. MBProgressHUD 또는 DSActivityView - 취소하려면 누르십시오
- 6. zipalign을 실행 한 apk의 서명을 취소하려면 어떻게해야합니까?
- 7. DataGrid ToolTip이 표시되기 전에 취소하려면 어떻게해야합니까?
- 8. Visual Studio NewPendingChange 이벤트를 취소하려면 어떻게해야합니까?
- 9. C# 3.5에서 비동기 대리자를 취소하려면 어떻게해야합니까?
- 10. 마지막으로 git add/commit를 실행 취소하려면 어떻게해야합니까?
- 11. [C++ winsock2.0] winsock 차단 호출을 중단하는 방법은 무엇입니까?
- 12. 이 차단 문제를 해결하려면 어떻게해야합니까?
- 13. Java/Swing에서 드래그 앤 드롭 작업을 프로그래밍 방식으로 취소하려면 어떻게해야합니까?
- 14. 차단 또는 수면 인터럽트 핸들러
- 15. WP7에서 호출 또는 SMS 차단
- 16. WCF 이중 서비스가 다른 서비스 호출을 차단 함
- 17. listen() ing 소켓에서 비 차단 I/O에 대한 WinSock select()?
- 18. C : select 호출을 사용하여 읽는 동안 어떻게 데이터를 추적합니까?
- 19. 모바일 Firefox의 차단 차단
- 20. 진행중인 실행 취소/다시 실행 작업을 취소하려면 어떻게해야합니까?
- 21. Windows에서 비 차단 IPC 읽기를 수행하려면 어떻게해야합니까?
- 22. vim에서 텍스트 블록에 대한 모든 변경 사항을 취소하려면 어떻게해야합니까?
- 23. jQuery ajax success 핸들러에서 모든 후속 성공 콜백을 취소하려면 어떻게해야합니까?
- 24. WPF에서 PreviewKeyDown으로 처리 한 후에 키 누르기를 취소하려면 어떻게해야합니까?
- 25. 유효성 검사 오류가 발생했을 때 Silverlight DataGrid에서 편집을 취소하려면 어떻게해야합니까?
- 26. 일반 PayPal 거래를 취소하려면 어떻게해야합니까? (지불하는 것이 아니라 고객에게 지불하십시오.)
- 27. 비 차단 소켓 연결에서 select()는 항상 1을 반환합니다.
- 28. Jinja2에서 차단 태그와 함께 매크로를 사용하려면 어떻게해야합니까?
- 29. 차단 된 모든 사용자의 목록을 얻기 위해이 같은
- 30. bash의 select 또는 poll에 해당합니다.
취소 할 사항이 없습니다. 다시 시도할지 여부는 시간 초과 및 결정 만 있습니다. – wberry