spice-client源码解析之process_loop.cpp

来源:互联网 发布:支付宝如何解绑淘宝号 编辑:程序博客网 时间:2024/05/16 10:06

spice 维护了一个Events Queue Loop,用来处理事件;

1.为什么使用event loop:
个人理解:event 是把需要处理的时间放到一个循环里, 同一个loop中的线程的执行使用异步api ,大量的节省了系统的开销;

2.函数:

Timer::Timer()TimersQueue::TimersQueue(AbstractProcessLoop& owner)TimersQueue::clear_queue()TimersQueue::activate_interval_timer(Timer* timer, unsigned int millisec)TimersQueue::deactivate_interval_timer(Timer* timer)TimersQueue::get_soonest_timeout()TimersQueue::timers_action()

一个定时器队列,用来添加,删除,获得超时等;使用这个函数来将事件的时间描述符和fd等结合起来。

ProcessLoop::ProcessLoop(void* owner)    : _events_queue (*this)    , _timers_queue (*this)    , _owner (owner)    , _quitting (false)    , _exit_code (0)    , _started (false)

ProcessLoop::ProcessLoop(void* owner)函数,将这些事件的描述对应起来;

原创粉丝点击