diff --git a/HttpServer/Events/OnWorkerStart.php b/HttpServer/Events/OnWorkerStart.php index e9cad2c2..57fba92a 100644 --- a/HttpServer/Events/OnWorkerStart.php +++ b/HttpServer/Events/OnWorkerStart.php @@ -36,8 +36,12 @@ class OnWorkerStart extends Callback */ public function onHandler(Server $server, int $worker_id): void { - Coroutine::set(['enable_deadlock_check' => false]); putenv('worker=' . $worker_id); + $query['exit_condition'] = function () { + return Coroutine::stats()['coroutine_num'] === 0; + }; + $query['enable_deadlock_check'] = false; + Coroutine::set($query); if ($worker_id >= $server->setting['worker_num']) { $this->onTask($server, $worker_id); @@ -45,7 +49,7 @@ class OnWorkerStart extends Callback $this->onWorker($server, $worker_id); } $this->debug(sprintf('%s #%d Pid:%d start.', ucfirst(env('environmental')), $worker_id, $server->worker_pid)); - Coroutine\go([$this, 'onSignal'], $server, $worker_id); +// Coroutine\go([$this, 'onSignal'], $server, $worker_id); }