我有一个应用程序,其中我有 1 个主线程,它创建 10 个不同的线程来完成某些工作。在应用程序结束时,当我尝试退出时,应用程序无法干净地退出。堆栈跟踪不是那么有用,但它显示函数“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);
}
我可以做些什么来释放我的线程使用的资源并干净地退出?