bool AsioSession::processSleepEvents() { if (m_sleepEventQueue.empty()) { return false; } bool woken = false; auto now = TimePoint::clock::now(); while (!m_sleepEventQueue.empty()) { auto wh = m_sleepEventQueue.top(); if (wh->getWakeTime() > now) { break; } woken = true; wh->process(); decRefObj(wh); m_sleepEventQueue.pop(); } return woken; }
bool AsioSession::processSleepEvents() { if (m_sleepEvents.empty()) { return false; } bool woken = false; auto now = TimePoint::clock::now(); while (!m_sleepEvents.empty()) { auto wh = m_sleepEvents.front(); if (wh->getWakeTime() > now) { break; } if (wh->process()) { woken = true; } decRefObj(wh); std::pop_heap(m_sleepEvents.begin(), m_sleepEvents.end(), sleep_compare); m_sleepEvents.pop_back(); } return woken; }