Esempio n. 1
0
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;
}	
Esempio n. 2
0
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;
}