質問
10以上のスレッドを備えたシステムがあります。 sigsegvをキャッチするための信号ハンドラーがあります。 1つのスレッドがsigsegVを生成する場合、その信号はすべてのスレッドに移動しますか、それとも信号を生成したスレッドに移動しますか?
解決
SIGSEGV
同期信号です。無効なメモリアクセスを引き起こしたスレッドに配信されます。から signal(7)
:
プロセス全体の信号が生成される(したがって保留中)(例えば、使用して送信された場合kill(2)
)または特定のスレッドの場合(例、ような特定の信号SIGSEGV
とSIGFPE
, 、特定のマシン言語命令を実行した結果として生成されます。pthread_kill(3)
)。現在、信号がブロックされていないスレッドのいずれかにプロセス指向の信号が配信される場合があります。複数のスレッドに信号がブロックされていない場合、カーネルは信号を配信する任意のスレッドを選択します。
所属していません StackOverflow