void SalUserEventList::eraseFrame( SalFrame* pFrame )
{ auto it = m_aFrames.find( pFrame );
assert( it != m_aFrames.end() ); if ( it != m_aFrames.end() )
m_aFrames.erase( it );
}
/* *Currentpolicyisthatschedulertasksaren'tallowedtothrowanexception. *Becauseotherwisetheexceptioniscaughtsomewheretotallyunrelated. *TODOIdeallywecouldcaptureaproperbacktraceandfeedthisintobreakpad, *whichisdo-able,butrequireswritingsomeassembly. *SeealsoScheduler::CallbackTaskScheduling
*/ #ifdef IOS
ProcessEvent( aEvent ); #else // the noexcept here means that (a) we abort and (b) debuggers will // likely trigger at the throw site instead of here, making the debugging // experience better when something goes wrong. auto process = [&aEvent, this] () noexcept { ProcessEvent(aEvent); };
process(); #endif
aResettableListGuard.lock(); if (!bHandleAllCurrentEvents) break;
} while( true );
}
std::unique_lock aGuard( m_aUserEventsMutex ); auto it = std::find( m_aUserEvents.begin(), m_aUserEvents.end(), aEvent ); if ( it != m_aUserEvents.end() )
{
m_aUserEvents.erase( it );
} else
{
it = std::find( m_aProcessingUserEvents.begin(), m_aProcessingUserEvents.end(), aEvent ); if ( it != m_aProcessingUserEvents.end() )
{
m_aProcessingUserEvents.erase( it );
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.