PHP 日本大会 2024

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