c - event_base_dispatch()如何工作?

标签 c events libevent

调用event_base_dispatch()函数时内部会发生什么?是否有任何创建的线程在收到停止信号之前一直运行?

最佳答案

event_base_dispatch() 是一个阻塞调用,它在调用该函数的线程的循环内执行您定义的回调。它会继续运行,直到不再有注册事件或您调用 event_base_loopexit()/event_base_loopbreak()
请参阅http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html

它相当于event_base_loop(event_base, 0)。快速查看源代码后,我没有看到创建任何其他线程:
https://github.com/libevent/libevent/blob/master/event.c#L1847

关于c - event_base_dispatch()如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30800776/

相关文章:

c - 没有不必要执行的可读条件逻辑?

c - 文件描述符确实在C中写入数据

c++ - libevent:未初始化的结构指针

c++ - 指向二维数组的指针。为什么这个例子有效?

c - clock_gettime 和 getrusage 有什么关系?

JavaScript - 拖动和放置事件未触发

javascript - OnClick 或 OnHover 事件监听 javascript 中的所有 IMG

c# - FormClosing 和 FormClosed 事件不起作用

sockets - libevent如何检测到套接字已关闭

c - execvp(grep) 后失去控制