初期化中にワーカー スレッドを作成する共有ライブラリを使用しています。アプリは uClibc と連携しています。__pthread_cond_wait()
main() から戻ると、共有ライブラリが cleanup() コードから適切に停止しないワーカー スレッドでクラッシュするか、同様のエラーが発生します。クラッシュ時の main() スレッド スタックは次のとおりです。
#0 _dl_munmap from uClibc.so
#1 _dl_fini
#2 __GI_exit
#3 __uClibc_main
共有ライブラリのソースがないため、ワーカーのクリーンアップ コードを修正できませんが、私の質問は次のとおりです。
uClibc が共有ライブラリのアンロードを開始すると、スレッドがまだ実行 (クラッシュ) するのはなぜですか? _dl_munmap
上記のスタックエントリからそれらをアンロードしていると思います。main() が終了したときにすべてのスレッドが一時停止/停止されていることを確認する方法はありますか?