void detachThread(ThreadIdentifier threadID) { ASSERT(threadID); pthread_t pthreadHandle = pthreadHandleForIdentifier(threadID); pthread_detach(pthreadHandle); clearPthreadHandleForIdentifier(threadID); }
int waitForThreadCompletion(ThreadIdentifier threadID, void** result) { ASSERT(threadID); pthread_t pthreadHandle = pthreadHandleForIdentifier(threadID); int joinResult = pthread_join(pthreadHandle, result); if (joinResult == EDEADLK) LOG_ERROR("ThreadIdentifier %u was found to be deadlocked trying to quit", threadID); clearPthreadHandleForIdentifier(threadID); return joinResult; }
ThreadIdentifierData::~ThreadIdentifierData() { clearPthreadHandleForIdentifier(m_identifier); }