4

mq_send の実行中にマルチスレッド プログラムが SIGSTOP シグナルを受信するとどうなるか教えてもらえますか?

4

1 に答える 1

2

のマニュアル ページは、Linux のシステム コールであるmq_sendの上に実装されていることを示しています。mq_timedsendシステム コールは通常、成功するか失敗するかという点でアトミックです。システム コールがシグナルによって中断された場合、通常の動作は -1 を返し、 に設定さerrnoEINTRます。このようなmq_send動作をしているようです。

基本的に、 を確認しEINTR、この方法で失敗した場合は呼び出しを再試行する必要があります。recvこれは、やのようにブロックされる可能性のあるシステム コールではselect、中断される可能性が高いため、特に重要です。

于 2009-10-29T23:10:53.323 に答える