신호 순서: SIGPOLL 및 SIGCHLD

신호 순서: SIGPOLL 및 SIGCHLD

하위 프로세스를 생성하고 파이프를 사용하여 연결합니다.

SIGPOLL사용 가능한 데이터를 전송하도록 파이프라인을 구성했습니다 fcntl I_SETSIG.

하위 프로세스는 파이프를 통해 일부 데이터를 보낸 다음 종료됩니다.

SIGPOLL그 전에 받을 수 있을지 확신할 수 있나요 SIGCHLD? (또는 이 경우 SIGCHLD신호가 전혀 수신되지 않을 수도 SIGPOLL있습니다. 두 개의 신호를 수신하면 순서를 결정할 수 있습니까?)

나는 FreeBSD에서 Perl을 사용하고 있지만 이 문제는 모든 Unix 플랫폼으로 확장됩니다.

답변1

이 디자인에는 경쟁 조건이 기록되어 있습니다. 신호가 순서대로 전달되는지, 심지어 전혀 전달되는지 확신할 수 없습니다. Perl을 사용하면 더욱 불확실해집니다.

데이터가 수신되었음을 부모가 자녀에게 확인할 수 있도록 재설계되었습니다. 신호의 순서와 양은 신뢰할 수 없으며 휴대용 솔루션을 요구하는 것은 더욱 절망적입니다.

관련 정보