// -------------------------------------------------------------------------------------- // BaseSysExecEvent_ScopedCore / SysExecEvent_CoreThreadClose / SysExecEvent_CoreThreadPause // -------------------------------------------------------------------------------------- void BaseSysExecEvent_ScopedCore::_post_and_wait( IScopedCoreThread& core ) { DoScopedTask(); ScopedLock lock( m_mtx_resume ); PostResult(); if( m_resume ) { // If the sender of the message requests a non-blocking resume, then we need // to deallocate the m_sync object, since the sender will likely leave scope and // invalidate it. switch( m_resume->WaitForResult() ) { case ScopedCore_BlockingResume: if( m_sync ) m_sync->ClearResult(); core.AllowResume(); break; case ScopedCore_NonblockingResume: m_sync = NULL; core.AllowResume(); break; case ScopedCore_SkipResume: m_sync = NULL; break; } } }
void CDMProxy::DecryptJob::PostResult(GMPErr aResult) { nsTArray<uint8_t> empty; PostResult(aResult, empty); }