私は Linux プログラミングは初めてで、すべての同期機能に完全に精通しているわけではないので、知識のある人にこの問題を解決する方法を尋ねたいと思います。
ループを実行したい単一のスレッドがあります。ループの停止ポイントは、ソケットでの読み取り操作です。読み取り操作を一定期間ブロックしてからタイムアウトさせたい。ただし、注意が必要なイベントがある場合は、読み取りからスレッドのブロックを解除する方法が必要です。「イベント」はさまざまなもののいずれかである可能性があるため、読み取りのブロックを解除する原因をスレッドに伝える何らかの方法が必要です。
ブロックされた読み取りをシグナルでブロック解除できることは知っていますが、それがどのように行われるかはわかりません。