直接上代码
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