关于事件持久性

默认情况下,每当一个待处理事件变为活跃时(因为它 的文件描述符已准备好进行读写,或因为它 的超时到期),它会在其回调执行之前变为非待处理状态。因此,为了再次使事件变为待处理状态,可以在回调函数中再次对其调用 Event::add()

但是,如果在事件上设置了 Event::PERSIST 标志,则事件是持久的。这意味着即使事件的回调被激活,事件也保持待处理状态。Event::del() 方法可以被调用使其变为非待处理状态。

持久事件的超时会在事件的回调运行时重置。因此,如果有一个事件带有标志 Event::READ | Event::PERSIST 以及五秒的超时,那么事件将变为活跃状态

  1. 每当套接字或文件描述符准备就绪以供读取时。

  2. 每当自事件上次变为活跃状态后五秒过去时。

另请参阅 » 使用 Libevent 进行快速便携的非阻塞网络编程,关于事件持久性

添加说明

用户贡献的说明

此页面没有用户贡献的说明。
To Top