From 66c292f4a49057a3aad088a274e26bf8f7be8521 Mon Sep 17 00:00:00 2001 From: Robert Gust-Bardon Date: Tue, 11 Dec 2018 04:04:23 -0500 Subject: [PATCH 1/2] Use more PHP 7.1 in the SignalHandler --- src/Monolog/SignalHandler.php | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/Monolog/SignalHandler.php b/src/Monolog/SignalHandler.php index 918dc97d..6cad7ed9 100644 --- a/src/Monolog/SignalHandler.php +++ b/src/Monolog/SignalHandler.php @@ -60,29 +60,23 @@ class SignalHandler return $this; } - public function handleSignal($signo, array $siginfo = null) + public function handleSignal($signo, array $siginfo = null): void { static $signals = []; if (!$signals && extension_loaded('pcntl')) { $pcntl = new ReflectionExtension('pcntl'); - $constants = $pcntl->getConstants(); - if (!$constants) { - // HHVM 3.24.2 returns an empty array. - $constants = get_defined_constants(true); - $constants = $constants['Core']; - } - foreach ($constants as $name => $value) { + // HHVM 3.24.2 returns an empty array. + foreach ($pcntl->getConstants() ?: get_defined_constants(true)['Core'] as $name => $value) { if (substr($name, 0, 3) === 'SIG' && $name[3] !== '_' && is_int($value)) { $signals[$value] = $name; } } - unset($constants); } - $level = isset($this->signalLevelMap[$signo]) ? $this->signalLevelMap[$signo] : LogLevel::CRITICAL; - $signal = isset($signals[$signo]) ? $signals[$signo] : $signo; - $context = isset($siginfo) ? $siginfo : []; + $level = $this->signalLevelMap[$signo] ?? LogLevel::CRITICAL; + $signal = $signals[$signo] ?? $signo; + $context = $siginfo ?? []; $this->logger->log($level, sprintf('Program received signal %s', $signal), $context); if (!isset($this->previousSignalHandler[$signo])) { From db54e30a8682902301eff42cd8e830c67406789a Mon Sep 17 00:00:00 2001 From: Robert Gust-Bardon Date: Tue, 11 Dec 2018 04:05:15 -0500 Subject: [PATCH 2/2] Fix the property for restarting syscalls (#1251) Credit goes to @gmponos for reporting the problem. --- src/Monolog/SignalHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Monolog/SignalHandler.php b/src/Monolog/SignalHandler.php index 6cad7ed9..4a79fe66 100644 --- a/src/Monolog/SignalHandler.php +++ b/src/Monolog/SignalHandler.php @@ -87,7 +87,7 @@ class SignalHandler if (extension_loaded('pcntl') && function_exists('pcntl_signal') && function_exists('pcntl_sigprocmask') && function_exists('pcntl_signal_dispatch') && extension_loaded('posix') && function_exists('posix_getpid') && function_exists('posix_kill') ) { - $restartSyscalls = isset($this->restartSyscalls[$signo]) ? $this->restartSyscalls[$signo] : true; + $restartSyscalls = $this->signalRestartSyscalls[$signo] ?? true; pcntl_signal($signo, SIG_DFL, $restartSyscalls); pcntl_sigprocmask(SIG_UNBLOCK, [$signo], $oldset); posix_kill(posix_getpid(), $signo);