EvSignal 类

(PECL ev >= 0.2.0)

简介

EvSignal 观察器将在进程收到特定信号一次或多次时触发事件。 即使信号是高度异步的,libev 也会尽力同步地传递信号,即作为正常事件处理的一部分,就像任何其他事件一样。

同一个信号的观察器数量没有限制,但仅限于同一个循环中,例如,可以在默认循环中观察 **SIGINT**,在另一个循环中观察 **SIGIO**,但不能同时在默认循环和另一个循环中观察 **SIGINT**。 目前,**SIGCHLD** 永久绑定到默认循环。

如果可能且受支持,libev 将使用 SA_RESTART(或等效)行为启用其处理程序,因此系统调用不应被过度中断。 如果系统调用被信号中断出现问题,所有信号可以在 EvCheck 观察器中阻塞,并在 EvPrepare 观察器中解除阻塞。

类概要

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

属性

signum

信号编号。 请参见 pcntl 扩展导出的常量。 另请参见 signal(7) 手册页。

目录

添加备注

用户贡献的备注

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