bool TimerQueue::insert(Timer* timer) { loop_->assertInLoopThread(); assert(timers_.size() == activeTimers_.size()); bool earliestChanged = false; Timestamp when = timer->expiration(); auto iter = timers_.begin(); if (iter == timers_.end() || when < iter->first) { earliestChanged = true; } { auto result = timers_.insert(std::make_pair(when, timer)); assert(result.second); } { auto result = activeTimers_.insert(ActiveTimer(timer, timer->sequeue())); assert(result.second); } assert(timers_.size() == activeTimers_.size()); return earliestChanged; }
bool TimerQueue::insert(Timer* timer) { loop_->assertInLoopThread(); assert(timers_.size() == activeTimers_.size()); bool earliestChanged = false; Timestamp when = timer->expiration(); TimerList::iterator it = timers_.begin(); if (it == timers_.end() || when < it->first) { earliestChanged = true; } { std::pair<TimerList::iterator, bool> result = timers_.insert(Entry(when, timer)); assert(result.second); (void)result; } { std::pair<ActiveTimerSet::iterator, bool> result = activeTimers_.insert(ActiveTimer(timer, timer->sequence())); assert(result.second); (void)result; } assert(timers_.size() == activeTimers_.size()); return earliestChanged; }