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