diff --git a/src/Ko/ProcessManager.php b/src/Ko/ProcessManager.php index de6e1cd..c321aba 100644 --- a/src/Ko/ProcessManager.php +++ b/src/Ko/ProcessManager.php @@ -70,23 +70,29 @@ class ProcessManager implements \Countable */ protected $signalHandler; - public function __construct() + public function __construct(SignalHandler $signalHandler = null) { $this->children = []; $this->spawnWatch = []; $this->sigTerm = false; + if (isset($signalHandler)) { + $this->signalHandler = $signalHandler; + + } else { + $this->signalHandler = new SignalHandler(); + } + $this->setupSignalHandlers(); } protected function setupSignalHandlers() { - $this->signalHandler = new SignalHandler(); - $this->signalHandler->registerHandler(SIGCHLD, function() { + $this->signalHandler->registerHandler(SIGCHLD, function () { $this->handleSigChild(); }); - $this->signalHandler->registerHandler(SIGTERM, function() { + $this->signalHandler->registerHandler(SIGTERM, function () { $this->handleSigTerm(); }); } @@ -114,7 +120,7 @@ public function handleSigTerm() foreach ($this->children as $process) { $process->kill(); } - + $this->internalEmit('shutdown'); } @@ -310,3 +316,4 @@ public function dispatch() return $this; } } +