2024 年 PHP 大会日本站

EvPrepare 类

(PECL ev >= 0.2.0)

简介

EvPrepareEvCheck 监视器通常成对使用。EvPrepare 监视器在进程阻塞之前被调用,EvCheck 监视器在之后被调用。

不允许从 EvPrepareEvCheck 监视器中调用 EvLoop::run() 或类似进入当前事件循环的方法或函数。但是,可以使用其他循环。这样做的原因是无需检查这些监视器中的递归,即顺序始终为:EvPrepare -> 阻塞 -> EvCheck,因此如果每种类型的监视器各有一个,它们将始终成对调用,从而括住阻塞调用。

其主要目的是将其他事件机制集成到 libev 中,其用法比较高级。例如,它们可用于跟踪变量变化、实现自定义监视器、集成 net-snmp 或协程库以及更多其他功能。它们偶尔也可用于缓存某些数据,并在阻塞之前将其刷新。

建议为 EvCheck 监视器设置最高 ( Ev::MAXPRI ) 优先级,以确保它们在轮询后在任何其他监视器之前运行(这对 EvPrepare 监视器并不重要)。

此外,EvCheck 监视器不应激活/馈送事件。虽然 libev 完全支持此功能,但它们可能会在其他 EvCheck 监视器完成其工作之前执行。

类概要

class EvPrepare extends EvWatcher {
/* 继承的属性 */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* 方法 */
public __construct( string $callback , string $data = ?, string $priority = ?)
final public static createStopped( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
/* 继承的方法 */
public EvWatcher::feed( int $revents ): void
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
}

目录

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top