diff --git a/src/Components/shared-memory/src/Process/SharedMemoryProcess.php b/src/Components/shared-memory/src/Process/SharedMemoryProcess.php index 48e2597a96..9fcd5d1233 100644 --- a/src/Components/shared-memory/src/Process/SharedMemoryProcess.php +++ b/src/Components/shared-memory/src/Process/SharedMemoryProcess.php @@ -8,6 +8,7 @@ use Imi\Swoole\Process\Annotation\Process; use Imi\Swoole\Process\BaseProcess; use Imi\Util\Imi; +use Imi\Util\ImiPriority; use Yurun\Swoole\SharedMemory\Server; /** @@ -17,6 +18,10 @@ class SharedMemoryProcess extends BaseProcess { public function run(\Swoole\Process $process): void { + $running = true; + \Imi\Event\Event::on('IMI.PROCESS.END', static function () use (&$running) { + $running = false; + }, ImiPriority::IMI_MAX); $socketFile = Config::get('@app.swooleSharedMemory.socketFile'); if (null === $socketFile) { @@ -34,5 +39,10 @@ public function run(\Swoole\Process $process): void ]); $server->run(); fwrite(\STDOUT, 'Process [sharedMemory] start' . \PHP_EOL); + /** @phpstan-ignore-next-line */ + while ($running) + { + sleep(1); + } } }