PHP Conference Nagoya 2025

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