void CControlSocket::OnTimer(wxTimerEvent&) { int timeout = m_pEngine->GetOptions()->GetOptionVal(OPTION_TIMEOUT); if (!timeout) return; if (m_pCurOpData && m_pCurOpData->waitForAsyncRequest) return; if (IsWaitingForLock()) return; if (m_stopWatch.Time() > (timeout * 1000)) { LogMessage(MessageType::Error, _("Connection timed out")); DoClose(FZ_REPLY_TIMEOUT); wxASSERT(!m_timer.IsRunning()); } }
void CControlSocket::OnTimer(fz::timer_id) { m_timer = 0; // It's a one-shot timer, no need to stop it int const timeout = engine_.GetOptions().GetOptionVal(OPTION_TIMEOUT); if (timeout > 0) { fz::duration elapsed = fz::monotonic_clock::now() - m_lastActivity; if ((!m_pCurOpData || !m_pCurOpData->waitForAsyncRequest) && !IsWaitingForLock()) { if (elapsed > fz::duration::from_seconds(timeout)) { LogMessage(MessageType::Error, wxPLURAL("Connection timed out after %d second of inactivity", "Connection timed out after %d seconds of inactivity", timeout), timeout); DoClose(FZ_REPLY_TIMEOUT); return; } } else { elapsed = fz::duration(); } m_timer = add_timer(fz::duration::from_milliseconds(timeout * 1000) - elapsed, true); } }