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

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

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

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

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top