Libevent Tip

来源:互联网 发布:linux找不到无线网卡 编辑:程序博客网 时间:2024/04/29 12:34
  1. libevent源码深度剖析
  2. Fast portable non-blocking network programming with Libevent
  3. libevent的消息循环与时间的整合:时间用最小堆实现,每次进去消息循环时取到下一次定时器触发的时间。如果当前时间大于等于最小的定时时间,定时事件触发,移到触发队列。如果最近的定时器时间都还没到,获取IO状态改变的是阻塞同步调用,这样可能会在定时器需要触发时还阻塞在那里。所以通过设置这个阻塞调用的timeout,既可以跳过。进入下一次循环时肯定可以判断到定时器触发了。Link
  4. libevent的消息循环与信号量的整合:信号量是马上触发的,而IO状态改变是阻塞同步调用,所以我们把信号量通过IO传递就可以了。信号触发时建个socket发送到libevent的IO的socket,IO状态改变了,就跳过阻塞,检查信号。Link

原创粉丝点击