# EvChild::__construct

(PECL ev >= 0.2.0)

EvChild::__construct — Constructs the EvChild watcher object

### Description

public EvChild::__construct ( int `$pid` , bool `$trace` , callable `$callback` [, mixed `$data` = `NULL` [, int `$priority` = 0 ]] )

Constructs the EvChild watcher object.

Call the callback when a status change for process ID `pid` (or any PID if `pid` is `0` ) has been received(a status change happens when the process terminates or is killed, or, when `trace` is `TRUE`, additionally when it is stopped or continued). In other words, when the process receives a `SIGCHLD` , Ev will fetch the outstanding exit/wait status for all changed/zombie children and call the callback.

It is valid to install a child watcher after an EvChild has exited but before the event loop has started its next iteration. For example, first one calls `fork` , then the new child process might exit, and only then an EvChild watcher is installed in the parent for the new PID .

You can access both exit/tracing status and `pid` by using the rstatus and rpid properties of the watcher object.

The number of PID watchers per PID is unlimited. All of them will be called.

The EvChild::createStopped() method doesn't start(activate) the newly created watcher.

### Parameters

`pid`

  Wait for status changes of process PID(or any process if PID is specified as `0` ).

`trace`

  If `FALSE`, only activate the watcher when the process terminates. Otherwise(`TRUE`) additionally activate the watcher when the process is stopped or continued.

`callback`

  See Watcher callbacks .

`data`

  Custom data associated with the watcher.

`priority`

  Watcher priority

### Return Values

Returns EvChild object on success.

### See Also

- EvLoop::child() - Creates EvChild object associated with the current event loop