私は、負のタイムアウトパラメータを持つ、いくつかのファイル記述子で不定なポーリングを行うpthreadを持っています。メインスレッドからpthreadを正常に終了するにはどうすればよいですか?
メインスレッドから、ポーリングスレッドに終了する必要があることを示すことができます。
私はいくつかの研究を行なったし、次のアプローチが見つかりました:
利用のpthread_cancel():それはすべての開催リソースやミューテックス
使用をクリアしていないの意図しない結果につながる可能性があるとして、これは推奨されたがフラグとしての変数をメインスレッドに設定します。ポーリングスレッドは繰り返しごとにこのフラグをチェックし、設定されている場合はpthread_exit()を呼び出して終了します。私のポーリングスレッドはループしないので、このアプローチは機能しませんが、単にファイル記述子を待って無期限にブロックします。
誰もがこの問題の優雅な解決策を提案できますか?
ありがとうございます! ASM
信号終端のミックスにeventfdを追加しますか? –
これは素晴らしい提案です。私はそれを試みることができます。ありがとう! –