どのスレッドがSIGURGを受け取りますか?

どのスレッドがSIGURGを受け取りますか?

私は最近、Unixに関する「研究ノート」を作成し、マルチスレッドプロセスについて次のような主張をしました。

「緊急」ビットを含むTCPパケットを受信すると、カーネルがSIGURGを受信する必要があるスレッドを識別することはほとんど不可能です。

段落3からセクション1.1、これを確認したい。

標準はこれに関する規定を提供しておらず、TCPURGフラグ全体MSG_OOBSIGURG実装とプロトコル固有のコンテンツを予約します。

しかし、既存の慣行はどうですか?オペレーティングシステムカーネルがSIGURGTCPフラグを受け取るソケット呼び出しでブロックされたスレッドにメッセージを送信しますか?スレッドをソケット所有者として指定できる実装はありますか?別の行動がありますか?recv(2)URG

ベストアンサー1

私が調査した3つの実装であるDarwin、FreeBSD、およびLinuxでは、メインスレッドはシグナルを受け取ります。メインスレッドがマスクでそれをブロックすると、どのスレッドも信号を受信しません。

おすすめ記事