mq_send の実行中にマルチスレッド プログラムが SIGSTOP シグナルを受信するとどうなるか教えてもらえますか?
1 に答える
2
のマニュアル ページは、Linux のシステム コールであるmq_send
の上に実装されていることを示しています。mq_timedsend
システム コールは通常、成功するか失敗するかという点でアトミックです。システム コールがシグナルによって中断された場合、通常の動作は -1 を返し、 に設定さerrno
れEINTR
ます。このようなmq_send
動作をしているようです。
基本的に、 を確認しEINTR
、この方法で失敗した場合は呼び出しを再試行する必要があります。recv
これは、やのようにブロックされる可能性のあるシステム コールではselect
、中断される可能性が高いため、特に重要です。
于 2009-10-29T23:10:53.323 に答える