Under certain circumstances, Core::onResumingFromIdle triggers an action, which causes Core::resumingFromIdle to be emitted. This triggers a crash, because the inner Core::onResumingFromIdle function will clear the m_pendingResumeFromIdleActions vector, causing the outer onResumingFromIdle to access a cleared vector through invalidated iterators.
This change works around this by adding a flag m_isHandlingWakeup which is set during the execution of the function, with an early exit, if it already set.