__stdcall unsigned ThreadBase::execute (void* data) #endif { ThreadBase* thread = reinterpret_cast<ThreadBase*> (data); thread->invoke (); thread->mutex.acquire (); #if defined(GLAY_LIBRARY_PTHREAD) pthread_exit (0); #elif defined(GLAY_SYSTEM_WINDOWS) ::_endthreadex (0); #endif thread->state = STATE_READY; Atomic::barrier (); thread->mutex.release (); return 0; }