0

初期化中にワーカー スレッドを作成する共有ライブラリを使用しています。アプリは 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() が終了したときにすべてのスレッドが一時停止/停止されていることを確認する方法はありますか?

4

1 に答える 1