private function registerSignalHandler()
{
if (php_sapi_name() === "phpdbg") {
// phpdbg captures SIGINT so don't bother inside the debugger
return;
}
$onSignal = coroutine([$this, "stop"]);
if (\Amp\reactor() instanceof UvReactor) {
\Amp\onSignal(\UV::SIGINT, $onSignal, ["keep_alive" => false]);
\Amp\onSignal(\UV::SIGTERM, $onSignal, ["keep_alive" => false]);
} elseif (extension_loaded("pcntl")) {
\Amp\repeat("pcntl_signal_dispatch", 1000, ["keep_alive" => false]);
pcntl_signal(\SIGINT, $onSignal);
pcntl_signal(\SIGTERM, $onSignal);
}
}