pselect の man ページで次のパラグラムを見ました。
pselect() が必要な理由は、シグナルまたはファイル記述子の準備が整うのを待ちたい場合、競合状態を防ぐためにアトミック テストが必要になるためです。(シグナルハンドラがグローバルフラグを設定して戻ると仮定します。この場合、このグローバルフラグのテストに続いて select() の呼び出しが行われると、テストの直後で呼び出しの直前にシグナルが到着した場合、無期限にハングアップする可能性があります。対照的に、pselect は、 () では、最初にシグナルをブロックし、入ってきたシグナルを処理してから、目的の sigmask を指定して pselect() を呼び出し、競合を回避できます。)
段落に記載されている競合状態がどのように発生するのかわかりません。それを理解するのを手伝ってもらえますか? ありがとう。