Jthread.cpp int JThread::Kill() { runningmutex.Lock(); if (!running) { runningmutex.Unlock(); return ERR_JTHREAD_NOTRUNNING; } //pthread_cancel(threadid); pthread_join(threadid, NULL);//??? running = false; runningmutex.Unlock(); return 0; } bool JThread::IsRunning() { bool r; runningmutex.Lock(); r = running; runningmutex.Unlock(); return r; } void *JThread::GetReturnValue() { void *val; runningmutex.Lock(); if (running) val = NULL; else val = retval; runningmutex.Unlock(); return val; }