PHP Velho Oeste 2024

event_set

(PECL libevent >= 0.0.1)

event_setПодготовить событие

Описание

event_set ( resource $event , mixed $fd , int $events , mixed $callback [, mixed $arg ] ) : bool

Подготовить событие для использования в event_add(). Событие подготовлено для вызова функции заданной в параметре callback для типов событий, заданных в events и представляющих набор следующих флагов: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE и EV_PERSIST.

Если в events установлен флаг EV_SIGNAL, то fd будет интерпритироваться как номер сигнала.

После инициализации события используйте функцию event_base_set() для связи его с соответствующей событийной базой.

Если событие подпадает под заданные критерии, то будет вызвана функция callback с тремя параметрами:

fd

Номер сигнала или ресурс, определяющий поток.

events

Набор флагов, соответствующий событию: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE и EV_PERSIST.

arg

Опциональный параметр, переданный ранее функции event_set() в параметре arg.

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

event

Корректный ресурс события.

fd

Корректный ресурс потока PHP. Должен уметь приводиться к файловому дескриптору, так что вы, скорее всего, не сможете использовать фильтрующие потоки.

events

Набор флагов, определяющих выбранное событие. Може быть EV_READ и/или EV_WRITE. Дополнительный флаг EV_PERSIST делает событие постоянным до того момента, пока не будет вызвана функция event_del(). В противном случае функция обратного вызова будет вызвана только один раз.

callback

Функция обратного вызова, которая будет вызвана для пишедшего события.

arg

Опциональные параметры, которые будут переданы в функцию обратного вызова.

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

event_set() возвращает TRUE или FALSE в зависимости от успешности завершения.

Список изменений

Версия Описание
0.0.4 Добавлена поддержка EV_SIGNAL.
add a note add a note

User Contributed Notes 1 note

up
-2
jille at hexon dot cx
12 years ago
If you change your event with event_set() libevent will forget which base your event belongs to. You must call event_base_set() again *before* calling event_add() on it.
To Top