スレッドのシグナルマスクを別のスレッドから変更する方法はありますか? ミューテックス、セマフォ、条件変数を使用せず、シグナルのみを使用するマルチスレッド C アプリケーションを作成することになっています。
メイン スレッドは SIGUSR1 をそのプロセスに送信し、2 つのスレッドのうちの 1 つ (メイン スレッドを除く) がシグナルに応答し、SIGUSR1 を sigmask からブロックしてスリープします。次に、メインスレッドが再び SIGUSR1 を送信すると、他のスレッドが応答し、その sigmask から SIGUSR1 をブロックし、他のスレッドの sigmask から SIGUSR1 のブロックを解除するため、再び SIGUSR1 に応答します。
したがって、基本的に、メイン スレッドが SIGUSR1 を送信するたびに、他の 2 つのスレッドが互いにスワップします。
誰か助けてくれませんか?