muduo库的 poller 接口类和Channel分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/andylau00j/article/details/80902931

muduo库内的 timerfd eventfd socketfd 等文件描述符,一般注册读写事件一般通过以下流程:

当一个fd想要注册可读事件时,首先通过

Channel::enableReading()-> 
Channel::update(this)-> 
EventLoop::updateChannel(Channel)-> 
Poller::updateChannel(Channel*)

调用链向poll系统调用的侦听事件表注册或者修改注册事件。

1. updateChannel(Channel*) :用于将传入的Channel关心的事件注册给Poller。

2. poll(int timeoutMs,vector< channel* > activeChannels):其调用poll获得当前活动的事件集合,将就绪事件所属的Channel调用fillActiveChannels()加入到调用方传入的 activeChannels_ 中。

猜你喜欢

转载自blog.csdn.net/andylau00j/article/details/80902931
今日推荐