PHPCon Poland 2024


(PECL event >= 1.2.6-beta)

Event::addMakes event pending


public Event::add( float $timeout = ?): bool

Marks event pending. Non-pending event will never occur, and the event callback will never be called. In conjunction with Event::del() an event could be re-scheduled by user at any time.

If Event::add() is called on an already pending event, libevent will leave it pending and re-schedule it with the given timeout(if specified). If in this case timeout is not specified, Event::add() has no effect.



Timeout in seconds.


成功した場合に true を、失敗した場合に false を返します。

例1 Adding a custom signal

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 {
$base, $ev;

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

public function
eventSighandler($no, $c) {
"Caught signal $no\n";

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


上の例の出力は、 たとえば以下のようになります。

Caught signal 15

例2 Adding a timer

= new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
"$n seconds elapsed\n";

上の例の出力は、 たとえば以下のようになります。

2 seconds elapsed


add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top