diff --git a/CHANGELOG.md b/CHANGELOG.md index df2185ff48..4d3361bee9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ Yii2 Queue Extension Change Log 2.3.2 under development ----------------------- -- no changes in this release. +- Bug #414: Fixed PHP errors when PCNTL functions were disallowed (brandonkelly) 2.3.1 December 23, 2020 diff --git a/src/cli/SignalLoop.php b/src/cli/SignalLoop.php index 08d5d0ee42..bf6d2b7da2 100644 --- a/src/cli/SignalLoop.php +++ b/src/cli/SignalLoop.php @@ -69,7 +69,7 @@ public function __construct($queue, array $config = []) public function init() { parent::init(); - if (extension_loaded('pcntl')) { + if (extension_loaded('pcntl') && function_exists('pcntl_signal')) { foreach ($this->exitSignals as $signal) { pcntl_signal($signal, function () { self::$exit = true; @@ -95,7 +95,7 @@ public function init() */ public function canContinue() { - if (extension_loaded('pcntl')) { + if (extension_loaded('pcntl') && function_exists('pcntl_signal_dispatch')) { pcntl_signal_dispatch(); // Wait for resume signal until loop is suspended while (self::$pause && !self::$exit) { diff --git a/src/drivers/amqp_interop/Queue.php b/src/drivers/amqp_interop/Queue.php index 6a93a40004..43779aaddb 100644 --- a/src/drivers/amqp_interop/Queue.php +++ b/src/drivers/amqp_interop/Queue.php @@ -224,7 +224,7 @@ public function init() $this->close(); }); - if (extension_loaded('pcntl') && PHP_MAJOR_VERSION >= 7) { + if (extension_loaded('pcntl') && function_exists('pcntl_signal') && PHP_MAJOR_VERSION >= 7) { // https://github.com/php-amqplib/php-amqplib#unix-signals $signals = [SIGTERM, SIGQUIT, SIGINT, SIGHUP];