EvChild::__construct

(PECL ev >= 0.2.0)

EvChild::__constructСоздает объект наблюдатель EvChild

Описание

public EvChild::__construct ( int $pid , bool $trace , callable $callback , mixed $data = null , int $priority = 0 )

Создает объект наблюдатель EvChild.

Вызывает callback-функцию, когда пришло событие изменения статуса процесса с идентификатором pid (или любым PID, если pid задан как 0 ). Статус процесса изменяется, когда процесс завершается, либо когда его убивают, либо, если trace равно true, когда он остановлен или возобновлен. Другими словами, когда процесс получает сигнал SIGCHLD , Ev извлекает статус exit/wait для всех измененных/зомби дочерних процессов и вызывает callback-функцию.

Правильно устанавливать дочернего наблюдателя после того, как EvChild завершился, но до запуска следующей итерации событийного цикла. К примеру, сначала вызывается fork, после чего новый дочерний процесс может выйти, и только после этого в родителе устанавливается наблюдатель EvChild для нового PID .

Вы можете получить доступ к статусам exit/tracing и pid используя свойства объекта наблюдателя rstatus и rpid.

Количество PID-наблюдателей для каждого PID не ограничено. Все они будут вызваны.

Метод EvChild::createStopped() не стартует(не активирует) созданного наблюдателя.

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

pid

Ожидает изменения статуса процесса с идентификатором PID (или любого процесса, если PID задан как 0 ).

trace

Если false, то активация наблюдателя происходит только при завершении процесса. Если true, то активация происходит также при остановке/возобновлении процесса.

callback

Смотрите Callback-функции наблюдателей .

data

Произвольные данные, связанные с наблюдателем.

priority

Приоритет наблюдателя

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

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

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

  • EvLoop::child() - Создает объект EvChild, связанный с текущим циклом событий