0

libevent我添加了以下代码:

while (run) {
  event_base_loop(base, EVLOOP_NONBLOCK | EVLOOP_ONCE);
}

如果我将其与以下内容进行比较:

event_base_dispatch(base);

这两个陈述是否相等?

4

1 回答 1

1

不,event_base_dispatch(base)调用等效于event_base_loop(base, 0),这意味着它既不会在第一批事件之后停止(如event_base_loop使用EVLOOP_ONCEdos),也不会在没有事件准备好时立即返回(如event_base_loop使用EVLOOP_NONBLOCKdos)。

您可能想阅读 Nick Mathewson 写的关于 libevent 的好书:http ://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html

于 2013-03-12T14:13:37.870 回答