From 518318ddc883530916339c325187d3be7aafc2b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Fri, 31 Mar 2023 10:26:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Abstracts/AsyncServer.php | 3 --- Handler/OnServerWorker.php | 5 +++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Abstracts/AsyncServer.php b/Abstracts/AsyncServer.php index f7c2b36..6ee3221 100644 --- a/Abstracts/AsyncServer.php +++ b/Abstracts/AsyncServer.php @@ -144,9 +144,6 @@ class AsyncServer implements ServerInterface $settings[Constant::OPTION_DAEMONIZE] = (bool)$daemon; $settings[Constant::OPTION_ENABLE_REUSE_PORT] = true; $settings[Constant::OPTION_PID_FILE] = storage('.swoole.pid'); - if ($settings[Constant::OPTION_ENABLE_COROUTINE] ?? false) { - Runtime::enableCoroutine(); - } if (!isset($settings[Constant::OPTION_PID_FILE])) { $settings[Constant::OPTION_LOG_FILE] = storage('system.log'); } diff --git a/Handler/OnServerWorker.php b/Handler/OnServerWorker.php index 1cf33c8..c4831b1 100644 --- a/Handler/OnServerWorker.php +++ b/Handler/OnServerWorker.php @@ -8,6 +8,7 @@ use Kiri\Abstracts\Config; use Kiri\Core\Help; use Kiri\Events\EventDispatch; use Kiri\Message\Handler\Router; +use Kiri\Server\Constant; use Kiri\Server\Events\OnAfterWorkerStart; use Kiri\Server\Events\OnBeforeWorkerStart; use Kiri\Server\Events\OnTaskerStart as OnTaskStart; @@ -18,6 +19,7 @@ use Kiri\Server\Events\OnWorkerStop; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; use ReflectionException; +use Swoole\Runtime; use Swoole\Server; use Kiri\Server\Abstracts\StatusEnum; use Kiri\Server\WorkerStatus; @@ -55,6 +57,9 @@ class OnServerWorker extends \Kiri\Server\Abstracts\Server */ public function onWorkerStart(Server $server, int $workerId): void { + if ($server->setting[Constant::OPTION_ENABLE_COROUTINE] ?? false) { + Runtime::enableCoroutine(); + } $this->dispatch->dispatch(new OnBeforeWorkerStart($workerId)); set_env('environmental_workerId', $workerId); $this->status->setEnum(StatusEnum::START);