void QTimerActiveObject::Run() { //restart timer immediately, if the timeout has been split because it overflows max for platform. if (m_timerInfo->msLeft > 0) { StartTimer(); return; } if (maybeQueueForLater()) return; if (m_timerInfo->interval > 0) { // Start a new timer immediately so that we don't lose time. m_timerInfo->msLeft = m_timerInfo->interval; StartTimer(); m_timerInfo->dispatcher->timerFired(m_timerInfo->timerId); } else { // However, we only complete zero timers after the event has finished, // in order to prevent busy looping when doing nested loops. // Keep the refpointer around in order to avoid deletion until the end of this function. SymbianTimerInfoPtr timerInfoPtr(m_timerInfo); m_timerInfo->dispatcher->timerFired(m_timerInfo->timerId); iStatus = KRequestPending; SetActive(); TRequestStatus *status = &iStatus; QEventDispatcherSymbian::RequestComplete(status, KErrNone); } }
void QSocketActiveObject::RunL() { if (maybeQueueForLater()) return; QT_TRYCATCH_LEAVING(m_dispatcher->socketFired(this)); }
void QSocketActiveObject::RunL() { if (maybeDeferSocketEvent()) return; if (maybeQueueForLater()) return; QT_TRYCATCH_LEAVING(run()); }
void QWakeUpActiveObject::RunL() { if (maybeQueueForLater()) return; iStatus = KRequestPending; SetActive(); QT_TRYCATCH_LEAVING(m_dispatcher->wakeUpWasCalled()); }