diff --git a/HttpServer/Events/OnTask.php b/HttpServer/Events/OnTask.php index b725dd18..efdfc765 100644 --- a/HttpServer/Events/OnTask.php +++ b/HttpServer/Events/OnTask.php @@ -79,7 +79,6 @@ class OnTask extends Callback } $finish = $this->runTaskHandler($task->data); - Coroutine::getContext()['isComplete'] = true; if (!$finish) { $finish = []; } diff --git a/HttpServer/Events/OnWorkerStart.php b/HttpServer/Events/OnWorkerStart.php index 2a414574..6d79f817 100644 --- a/HttpServer/Events/OnWorkerStart.php +++ b/HttpServer/Events/OnWorkerStart.php @@ -63,15 +63,8 @@ class OnWorkerStart extends Callback if ($sigkill === false) { return $server->stop($workerId); } - while (true) { - $context = Coroutine::getContext(Coroutine::getPcid()); - if (!isset($context['isComplete'])) { - break; - } - $content = $context['isComplete']; - if ($content === true) { - break; - } + while ($server->stats()['coroutine_num'] > 0) { + Coroutine::sleep(0.01); } return $server->stop($workerId); });