libevent源码分析--核心部分event

本文深入探讨libevent库中用于事件设置的关键接口,包括event_set()、event_base_set()和event_priority_set()。event_set()用于绑定文件描述符或信号、设置事件类型及回调函数。event_base_set()指定事件注册的event_base,确保在多libevent实例环境中正确分配。event_priority_set()允许调整事件优先级,但须避免在事件就绪状态下操作。
摘要由CSDN通过智能技术生成
对事件处理流程有了高层的认识后,本节将详细介绍libevent 的核心结构event,以及
libevent对event的管理。
1 libevent的核心-event
Libevent是基于事件驱动(event-driven)的,从名字也可以看到event是整个库的核心。
event就是Reactor框架中的事件处理程序组件;它提供了函数接口,供Reactor在事件发生
时调用,以执行相应的事件处理,通常它会绑定一个有效的句柄。
首先给出event结构体的声明,它位于event.h文件中:
struct event{
TAILQ_ENTRY(event) ev_next;
TAILQ_ENTRY(event) ev_active_next;
TAILQ_ENTRY(event) ev_signal_next;
unsigned int min_heap_idx; /* for managing timeouts */
struct event_base*ev_base;
int ev_fd;
short ev_events;
short ev_ncalls;
short*ev_pncalls;  /* Allows deletes in callback */
struct timeval ev_timeout;
int ev_pri;   /* smaller numbers are higher priority */
void(*ev_callback)(int, short, void*arg);
void*ev_arg;
int ev_res;   /* result passed to event callback */
int ev_flags;
}; 


下面详细解释一下结构体中各字段的含义。
1)ev_events:eve
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值