浅析muduo网络库之Poller在哪里调用——EventLoop

直接上代码

void EventLoop::loop()
{
  
  while (!quit_)
  {
   // 调用poll
    pollReturnTime_ = poller_->poll(kPollTimeMs, &activeChannels_);



    for (ChannelList::iterator it = activeChannels_.begin();
        it != activeChannels_.end(); ++it)
    {
      currentActiveChannel_ = *it;
      currentActiveChannel_->handleEvent(pollReturnTime_);
    }

  }
}

再说点事

调用poll之后,获取到有事件的通道的集合。
这些事件需要及时处理,因此有handleEvent

      currentActiveChannel_->handleEvent(pollReturnTime_);

最后一句

这是个大循环,因此EventLoop会处理Poll的所有事件,
只要在其他地方把需要监听的通道放进去就可以了。

 while (!quit_)
{
}

打赏

如果这篇文章解决了您的问题,让我买根烟抽抽。

支付宝.jpg
微信.jpg

你可能感兴趣的:(浅析muduo网络库之Poller在哪里调用——EventLoop)