Makes event pending

# Event::add

(PECL event >= 1.2.6-beta)

Event::add — Makes event pending

### Description

public function 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.

### Parameters

`timeout`

  Timeout in seconds.

### Return Values

Returns `true` on success or `false` on failure.

### Examples

Example #1 Adding a custom signal

    <?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->add();
        }

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

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

    $base->loop();
    ?>

The above example will output something similar to:

    Caught signal 15

Example #2 Adding a timer

    <?php
    $base = new EventBase();
    $n = 2;
    $e = Event::timer($base, function($n) use (&$e) {
        echo "$n seconds elapsed\n";
        $e->delTimer();
    }, $n);
    $e->add($n);
    $base->loop();
    ?>

The above example will output something similar to:

    2 seconds elapsed

### See Also

- Event::add()
- Event::del() - Makes event non-pending
- Event::signal() - Constructs signal event object
- Event::timer() - Constructs timer event object

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open