EvChild::__construct
(PECL ev >= 0.2.0)
EvChild::__construct — Создает объект наблюдатель EvChild
Описание
$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, связанный с текущим циклом событий