首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

EventBase (class)

Introduction

(PECL event >= 1.2.6-beta)

EventBase类表示libevent的事件库结构。它包含一组事件并可以轮询以确定哪些事件处于活动状态。

每个事件库都有一个方法,或者一个用来确定哪些事件已准备好的后端。公认的方法是:selectpollepollkqueuedevpollevportwin32

要配置要使用的事件库,或者避免使用特定的后端EventConfig类。

警告

千万不要破坏EventBase只要相关的资源对象的事件对象不被释放。否则,会导致不可预知的结果!

课程简介

final EventBase {

/* Constants */

const integer LOOP_ONCE = 1 ;

const integer LOOP_NONBLOCK = 2 ;

const integer NOLOCK = 1 ;

const integer STARTUP_IOCP = 4 ;

const integer NO_CACHE_TIME = 8 ;

const integer EPOLL_USE_CHANGELIST = 16 ;

/* Methods */

代码语言:javascript
复制
public __construct ([  EventConfig $cfg  ] )
代码语言:javascript
复制
public void dispatch ( void )
代码语言:javascript
复制
public bool exit ([  double $timeout  ] )
代码语言:javascript
复制
public void free ( void )
代码语言:javascript
复制
public int getFeatures ( void )
代码语言:javascript
复制
public string getMethod ( void )
代码语言:javascript
复制
public double getTimeOfDayCached ( void )
代码语言:javascript
复制
public bool gotExit ( void )
代码语言:javascript
复制
public bool gotStop ( void )
代码语言:javascript
复制
public bool loop ([  int $flags  ] )
代码语言:javascript
复制
public bool priorityInit (  int $n_priorities  )
代码语言:javascript
复制
public bool reInit ( void )
代码语言:javascript
复制
public bool stop ( void )

}

预定义的常量

EventBase::LOOP_ONCE

与EventBase :: loop()方法一起使用的标志,意思是:“阻塞直到libevent有一个活动事件,然后退出,一旦所有活动事件都有回调运行”。

EventBase::LOOP_NONBLOCK

与EventBase :: loop()方法一起使用的标志,意思是:“不要阻塞:查看哪些事件现在准备好,运行最高优先级的回调,然后退出”。

EventBase::NOLOCK

配置标志。不要为事件库分配锁,即使我们已经锁定了设置“。

EventBase::STARTUP_IOCP

仅限Windows的配置标志。启动时启用IOCP分派器。

EventBase::NO_CACHE_TIME

配置标志。每次事件循环准备好运行超时回调时,不要检查当前时间,而要在每次超时回调后检查。

EventBase::EPOLL_USE_CHANGELIST

如果我们使用epoll后端,这个标志表示使用Libevent的内部变更列表代码来批量增加和删除是安全的,以便尽可能少地执行系统调用。

设置此标志可以使代码运行得更快,但它可能会触发Linux bug:如果使用此标志(如果有由dup()或其变体克隆的任何fds),则不安全。这样做会产生奇怪而难以诊断的错误。

该标志也可以通过设置EVENT_EPOLL_USE_CHANGELIST环境变量来激活。

如果使用除了epoll之外的后端,这个标志不起作用。

目录

  • EventBase::__construct — Constructs EventBase object
  • EventBase::dispatch — Dispatch pending events
  • EventBase::exit — Stop dispatching events
  • EventBase::getFeatures — Returns bitmask of features supported
  • EventBase::getMethod — Returns event method in use
  • EventBase::getTimeOfDayCached — Returns the current event base time
  • EventBase::gotExit — Checks if the event loop was told to exit
  • EventBase::gotStop — Checks if the event loop was told to exit
  • EventBase::loop — Dispatch pending events
  • EventBase::priorityInit — Sets number of priorities per event base
  • EventBase::reInit — Re-initialize event base(after a fork).
  • EventBase::stop — Tells event_base to stop dispatching events

← Event::timer

EventBase::__construct →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com