あるジョブを実行するために 10 個の異なるスレッドを作成する 1 つのメイン スレッドを持つアプリケーションがあります。アプリケーションの最後に終了しようとすると、アプリケーションを正常に終了できません。スタック トレースはそれほど有用ではありませんが、関数 "cancel_deliver()" のクラッシュを示しています。私の最初の推測では、これは、各スレッドで使用されるリソースを解放する際に実行された何らかの呼び出しであると推測されますが、完全にはわかりません。
fyi: 各スレッドのコールバック関数には、while (1) ループがあります。
ここにスニペットがあります
void main (...)
{
pthread_t tid;
for (int i=0; i<10; i++)
pthread_create(&tid, NULL, xyzCallback, NULL);
}
void xyzCallback(void* data)
{
while (1)
{
////
}
}
void atExit()
{
exit(1);
}
スレッドで使用されているリソースを解放して、きれいに終了するためにできることはありますか?