首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Event::addSignal

(PECL event >= 1.2.6-beta)

Event :: addSignal - 使信号事件悬而未决

描述

代码语言:javascript
复制
public bool Event::addSignal ([  double $timeout  ] )

Event :: addSignal()是Event :: add()的别名

Examples

示例#1 Event :: addSignal()示例

代码语言:javascript
复制
<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ ps aux | grep examp
ruslan    3976  0.2  0.0 139896 11256 pts/1    S+   10:25   0:00 php examples/signal.php
ruslan    3978  0.0  0.0   9572   864 pts/2    S+   10:26   0:00 grep --color=auto examp
$ kill -TERM 3976

At the first terminal window you should catch the following:

Caught signal 15
*/
class MyEventSignal {
    private $base, $ev;

    public function __construct($base) {
        $this->base = $base;
        $this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
        $this->ev->addSignal();
    }

    public function eventSighandler($no, $c) {
        echo "Caught signal $no\n";
        $this->base->exit();
    }
}

$base = new EventBase();
$c    = new MyEventSignal($base);

$base->loop();
?>

上面的例子会输出类似于:

代码语言:javascript
复制
Caught signal 15

也可以看看

  • Event :: add() - 使事件悬而未决
  • Event :: del() - 使事件处于非挂起状态
  • Event :: delSignal() - 使信号事件处于非挂起状态
  • Event :: signal() - 构造信号事件对象

← Event::add

Event::addTimer →

扫码关注腾讯云开发者

领取腾讯云代金券