在libevent
我添加了以下代码:
while (run) {
event_base_loop(base, EVLOOP_NONBLOCK | EVLOOP_ONCE);
}
如果我将其与以下内容进行比较:
event_base_dispatch(base);
这两个陈述是否相等?
不,event_base_dispatch(base)
调用等效于event_base_loop(base, 0)
,这意味着它既不会在第一批事件之后停止(如event_base_loop
使用EVLOOP_ONCE
dos),也不会在没有事件准备好时立即返回(如event_base_loop
使用EVLOOP_NONBLOCK
dos)。
您可能想阅读 Nick Mathewson 写的关于 libevent 的好书:http ://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html