public function __construct($pid)
{
$this->pid = $pid;
$self = $this;
$signalHandler = function ($signo) use($self) {
$self->emit("close", $self->getSignalName($signo));
exit;
};
//set up signals map
$this->signalsMap = array();
$signals = array("SIGTERM", "SIGHUP", "SIGUSR1", "SIGQUIT", "SIGINT");
foreach ($signals as $signal) {
$signalNumber = constant($signal);
$this->signalsMap[$signalNumber] = $signal;
pcntl_signal($signalNumber, $signalHandler);
}
}