Jthread.cpp void *JThread::TheThread(void *param) { JThread *jthread; void *ret; jthread = (JThread *)param; jthread->continuemutex2.Lock(); jthread->runningmutex.Lock(); jthread->running = true; jthread->runningmutex.Unlock(); jthread->continuemutex.Lock(); jthread->continuemutex.Unlock(); ret = jthread->Thread(); jthread->runningmutex.Lock(); jthread->running = false; jthread->retval = ret; jthread->runningmutex.Unlock(); return NULL; } void JThread::ThreadStarted() { continuemutex2.Unlock(); }