필자는 POSIX 쓰레드와 POSIX 시그널이 어떻게 상호 작용 하는지를 이해하려고 노력 해왔다. 특히, 나는 다음에 관심이있다 :POSIX 쓰레드와 시그널
- 신호가 전달되는 스레드를 제어하는 가장 좋은 방법은 무엇입니까 (처음에는 치명적이지 않다고 가정).
- 신호가 도착한 다른 스레드 (실제로 사용 중일 수 있음)를 알려주는 가장 좋은 방법은 무엇입니까? (나는 이미 신호 처리기에서 pthread 조건 변수를 사용하는 것이 좋지 않음을 알고 있습니다.)
- 신호가 발생한 정보를 다른 스레드로 전달하는 것을 안전하게 처리하려면 어떻게해야합니까? 신호 처리기에서이 작업이 필요합니까? (I는하지 일반적으로 다른 스레드를 죽이고 싶어 할;. 내가 훨씬 더 미묘한 접근 방식이 필요합니다)
참고로 나는이를하려는 이유, 내가 스레드를 지원하는 TclX 패키지를 변환하는 방법을 연구, 또는 해요 대해 그것을 분할하고 최소한 유용한 부분 지원 스레드를 만드십시오. 신호는 특히 중요한 부분 중 하나입니다.
그것은 특히 치명적이지 않은 신호 처리를 처리하는 데 사용할 수 있으므로 훨씬 더 유용한 대답입니다. 감사! –
시그널 핸들링 쓰레드가 시그널 핸들러를 전혀 설치하지 않으면, 대신'sigwaitinfo()'(또는'sigtimedwait()')를 반복하고, 설명 된대로 나머지 어플리케이션에 디스패치합니다 마지막 단락에서. – caf
@caf, 실제로 그렇게. 업데이트 됨 – pilcrow