メインスレッドが実行されている限り、バックグラウンドで実行されるデーモンスレッドを持つプログラムを書いています。メインスレッドが終了したらデーモンスレッドを終了させたいので、以下の2つの方法を試しました。
- pthread_kill を使用すると、取り外し可能として初期化した場合でもメモリ リークが発生します (このスレッドに参加する必要はありません)。
bool _daemonRun
これはうまくいかなかったので、グローバルが true である限り、デーモン スレッドをループで実行することを考えました。メイン スレッドが終了する前_daemonRun
に false に設定し、デーモンでpthread_exit(NULL)
ループの外で使用します。問題は - どうすればスレッドを再開できますか? スレッドを待たせたくないので、条件変数の使用は混乱のようです...
何か案は?ありがとう