/** * @param \Icicle\Loop\SelectLoop $loop */ public function __construct(SelectLoop $loop) { parent::__construct($loop); $callback = $this->createSignalCallback(); foreach ($this->getSignalList() as $signal) { pcntl_signal($signal, $callback); } }
/** * @param \Icicle\Loop\EventLoop $loop */ public function __construct(EventLoop $loop) { parent::__construct($loop); $callback = $this->createSignalCallback(); $base = $loop->getEventBase(); foreach ($this->getSignalList() as $signal) { $event = new Event($base, $signal, Event::SIGNAL | Event::PERSIST, $callback); $event->add(); $this->events[$signal] = $event; } }
/** * @param \Icicle\Loop\EvLoop $loop */ public function __construct(EvLoop $loop) { parent::__construct($loop); $callback = $this->createSignalCallback(); $callback = function (\EvSignal $event) use($callback) { $callback($event->signum); }; $loop = $loop->getEvLoop(); foreach ($this->getSignalList() as $signal) { $event = $loop->signal($signal, $callback); $this->events[$signal] = $event; } }
/** * @param \Icicle\Loop\LibeventLoop $loop */ public function __construct(LibeventLoop $loop) { parent::__construct($loop); $callback = $this->createSignalCallback(); $base = $loop->getEventBase(); foreach ($this->getSignalList() as $signo) { $event = event_new(); event_set($event, $signo, EV_SIGNAL | EV_PERSIST, $callback); event_base_set($event, $base); event_add($event); $this->events[$signo] = $event; } }
/** * @param \Icicle\Loop\UvLoop $loop */ public function __construct(UvLoop $loop) { parent::__construct($loop); $loopHandle = $loop->getLoopHandle(); $signalCallback = $this->createSignalCallback(); $callback = function ($sigHandle, int $signo) use($signalCallback) { $signalCallback($signo); }; foreach ($this->getSignalList() as $signo) { $sigHandle = \uv_signal_init($loopHandle); \uv_signal_start($sigHandle, $callback, $signo); $this->sigHandles[$signo] = $sigHandle; } }