문제

multhread 프로그램이 mq_send를 실행하는 동안 SIGSTOP 신호를 받으면 어떤 일이 발생하는지 말해 줄 수 있습니까?

도움이 되었습니까?

해결책

남자 페이지 mq_send 위에 구현되었음을 나타냅니다 mq_timedsend, Linux의 시스템 호출입니다. 시스템 호출은 일반적으로 성공하거나 그렇지 않다는 점에서 원자입니다. 시스템 호출이 신호에 의해 중단되면 일반적인 동작은 -1을 반환하고 설정하는 것입니다. errno 에게 EINTR. 보입니다 mq_send 이 행동이 있습니다.

기본적으로 확인해야합니다 EINTR, 이런 식으로 실패하면 전화를 다시 시도하십시오. 이것은 다음과 같이 차단할 수있는 시스템 호출에 특히 중요합니다. recv 또는 select, 그들은 중단 될 가능성이 높기 때문에.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top