diff --git a/src/libCom/osi/os/posix/osdThread.c b/src/libCom/osi/os/posix/osdThread.c index cf4dda832..ad74fe46b 100644 --- a/src/libCom/osi/os/posix/osdThread.c +++ b/src/libCom/osi/os/posix/osdThread.c @@ -88,7 +88,9 @@ static void myAtExit(void) semMutexMustTake(listMutex); pthreadInfo=(threadInfo *)ellFirst(&pthreadList); while(pthreadInfo) { - pthread_cancel(pthreadInfo->tid); + if(pthreadInfo->createFunc){// dont cancel main thread + pthread_cancel(pthreadInfo->tid); + } pthreadInfo=(threadInfo *)ellNext(&pthreadInfo->node); } semMutexGive(listMutex);