EvCheck 类

(PECL ev >= 0.2.0)

简介

EvPrepareEvCheck 观察者通常成对使用。 EvPrepare 观察者在进程阻塞之前被调用,EvCheck 之后被调用。

不允许从 EvPrepareEvCheck 观察者调用 EvLoop::run() 或类似方法或函数,这些方法或函数将进入当前事件循环。 然而,除了当前循环之外的其他循环是可以的。 这背后的基本原理是,在这些观察者中不需要检查递归,即序列将始终是: EvPrepare -> 阻塞 -> EvCheck ,因此,如果每个类型都有一个观察者,它们将始终在成对地包围阻塞调用时被调用。

主要目的是将其他事件机制集成到 libev 中,它们的使用有点高级。 例如,它们可用于跟踪变量更改、实现自定义观察者、集成 net-snmp 或协程库等等。 它们有时也用于缓存一些数据,并希望在阻塞之前将其刷新。

建议为 EvCheck 观察者提供最高(Ev::MAXPRI)优先级,以确保它们在轮询后比任何其他观察者都先运行(这对 EvPrepare 观察者来说并不重要)。

此外,EvCheck 观察者不应激活/馈送事件。 虽然 libev 完全支持这一点,但它们可能会在其他 EvCheck 观察者完成其工作之前被执行。

类概要

class EvCheck extends EvWatcher {
/* 继承的属性 */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* 方法 */
public __construct( callable $callback , mixed $data = ?, int $priority = ?)
final public static createStopped( string $callback , string $data = ?, string $priority = ?): object
/* 继承的方法 */
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