Event::add

(PECL event >= 1.2.6-beta)

Event::addПеревести событие в состояние ожидания

Описание

publicEvent::add(float$timeout = ?): bool

Переводит событие в состояние ожидания. Не ожидающие события никогда не сработают и не вызовут callback-функцию. В сочетании с Event::del(), событие может быть перезапланированно пользователем в любое время.

Если метод Event::add() вызван для уже ожидающего события, libevent оставит его в состоянии ожидания и перезапланирует его в соответствии с заданным временем ожидания (если оно задано). Если время ожидания не задано, то Event::add() не возымеет какого-либо эффекта.

Список параметров

timeout

Время ожидания в секундах.

Возвращаемые значения

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Примеры

Пример #1 Добавление пользовательского сигнала

<?php

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
"Пойманный сигнал $no\n";
$this->base->exit();
}
}
$base = new EventBase();
$c = new MyEventSignal($base);
$base->loop();
?>

Вывод приведённого примера будет похож на:

Пойманный сигнал 15

Пример #2 Добавление таймера

<?php
$base
= new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
echo
"Прошло секунд: $n\n";
$e->delTimer();
},
$n);
$e->add($n);
$base->loop();
?>

Вывод приведённого примера будет похож на:

Прошло секунд: 2

Смотрите также

  • Event::add()
  • Event::del() - Перевести событие в пассивное состояние
  • Event::signal() - Создать объект события сигнала
  • Event::timer() - Создать объект события таймера
To Top