请教pthread_detach函数的问题
大家好:
我刚开始学linux 的线程编程,在看一个程序时,看到如下的代码,不明白为什么要在pthread_join后面再次调用pthread_detach函数,请各位高手给解答一下,谢谢!
int AviMngExit()
{
int ret = 0;
AVI_DBG("Enter %s\n", __func__);
pSysinfo = NULL;
pthread_mutex_lock(&gAviMutex);
gAviState |= AVI_THR_EXIT;
pthread_mutex_unlock(&gAviMutex);
pthread_cond_signal(&gAviRunCond);
AVI_DBG("Wait AVI manager done\n");
pthread_join(gAviMngThr, (void **)&ret);//这里为什么即使用pthread_join又使用pthread_detach
pthread_detach(gAviMngThr);
ret |= pthread_mutex_destroy(&gAviConMutex);
ret |= pthread_mutex_destroy(&gAviMutex);
if(DestroySem(hSdFileSem))
ret |= -1;
else
hSdFileSem = NULL;
AVI_DBG("Leave %s\n", __func__);
return ret;
}