bool wxThreadModule::OnInit() { bool hasThreadManager = #ifdef __LP64__ true ; // TODO VERIFY IN NEXT BUILD #else MPLibraryIsLoaded(); #endif if ( !hasThreadManager ) { wxLogError( wxT("MP thread support is not available on this system" ) ) ; return false; } // main thread's This() is NULL verify_noerr( MPAllocateTaskStorageIndex( &gs_tlsForWXThread ) ) ; verify_noerr( MPSetTaskStorageValue( gs_tlsForWXThread, 0 ) ) ; wxThread::ms_idMainThread = wxThread::GetCurrentId(); gs_critsectWaitingForGui = new wxCriticalSection(); gs_critsectGui = new wxCriticalSection(); gs_critsectGui->Enter(); return true; }
MacThreadLocalImpl::MacThreadLocalImpl() : mTaskIndex(0) { MPAllocateTaskStorageIndex(&mTaskIndex); }