libevent的signal信号相关API

1. 外部API

以下相关的API都是对event_xxx的简单封装。

1.1 evsignal_new

功能:

创建一个新的event并绑定绑定signal回调函数。

备注:

其实现是直接调用event_new来实现的,宏定义如下:

#define evsignal_new(b, x, cb, arg)          \
   event_new((b), (x), EV_SIGNAL|EV_PERSIST, (cb), (arg))

原型:


evsignal_new(struct event_base *base, evutil_socket_t signal, 
			void (*cb)(evutil_socket_t, short, void *), void *arg);

1.2 evsignal_assign

功能:

对于已经创建好的event绑定signal回调函数。

备注:

#define evsignal_assign(ev, b, x, cb, arg)         \
   event_assign((ev), (b), (x), EV_SIGNAL|EV_PERSIST, cb, (arg))

原型:


evsignal_new(struct event* e, struct event_base *base, evutil_socket_t signal, 
			void (*cb)(evutil_socket_t, short, void *), void *arg);

1.3 evsignal_add

功能:

将signal event添加到底层epoll或者其他io模型中,使得event进入pending状态等待事件的发生。

备注:

#define evsignal_add(ev, tv)     event_add((ev), (tv))

原型:

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

1.4 evsignal_del

功能:

将signal event从底层epoll或者其他io模型中删除,使得event不再处理事件。

备注:

#define evsignal_del(ev)      event_del(ev)

原型:

int event_del(struct event *ev);

1.5 evsignal_pending

功能:

检查当前signal event 是否在pending或者被调度状态。

备注:

#define evsignal_pending(ev, tv) event_pending((ev), EV_SIGNAL, (tv))

原型:

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

输入参数:

tv: 当前 event如果是TIMEOUT事件的时候,返回事件的超时时间。

1.6 evsignal_initialized

功能:

判断事件是否已经被初始化过。即判断ev->ev_flags & EVLIST_INIT是否不为0。

备注:

#define evsignal_initialized(ev) event_initialized(ev)

原型:

int evsignal_initialized(const struct event *ev);
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农心语

您的鼓励是我写作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值