1 Star 0 Fork 13

zcy543814 / libevent

forked from 刘丹冰Aceld / libevent 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
62_shi_jian_de_wei_jue_he_fei_wei_jue.md 1.24 KB
一键复制 编辑 原始数据 按行查看 历史

6.2 事件的未决和非未决

构造事件之后,在将其添加到 event_base 之前实际上是不能对其做任何操作的。使用event_add()将事件添加到 event_base。

6.2.1 设置未决事件

int event_add(struct event *ev, const struct timeval *tv);

在非未决的事件上调用 event_add()将使其在配置的 event_base 中成为未决的。成功时 函数返回0,失败时返回-1。

如果 tv 为 NULL,添加的事件不会超时。否则, tv 以秒和微秒指定超时值。

如果对已经未决的事件调用 event_add(),事件将保持未决状态,并在指定的超时时间被重新调度。

注意 :不要设置 tv 为希望超时事件执行的时间。如果在 2010 年 1 月 1 日设置 “tv->tv_sec=time(NULL)+10;”,超时事件将会等待40年,而不是10秒。

6.2.2 设置非未决事件

int event_del(struct event *ev);

对已经初始化的事件调用 event_del()将使其成为非未决和非激活的。如果事件不是未决的或者激活的,调用将没有效果。成功时函数返回 0,失败时返回-1。

注意:如果在事件激活后,其回调被执行前删除事件,回调将不会执行。

这些函数定义在<event2/event.h>中,从0.1版本就存在了。

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zcy543814/libevent.git
git@gitee.com:zcy543814/libevent.git
zcy543814
libevent
libevent
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891