From 96fa6b105cf3afb3889b164fcc64cddf43158539 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Fri, 30 Dec 2022 11:30:29 +0800 Subject: [PATCH] add coroutine for container --- src/ZM/Container/ContainerHolder.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/ZM/Container/ContainerHolder.php b/src/ZM/Container/ContainerHolder.php index 57ae714a..de6fc4b7 100644 --- a/src/ZM/Container/ContainerHolder.php +++ b/src/ZM/Container/ContainerHolder.php @@ -7,22 +7,26 @@ namespace ZM\Container; use DI; use DI\Container; use DI\ContainerBuilder; +use OneBot\Driver\Coroutine\Adaptive; class ContainerHolder { - private static ?Container $container = null; + /** @var Container[] */ + private static array $container = []; public static function getEventContainer(): Container { - if (self::$container === null) { - self::$container = self::buildContainer(); + $cid = Adaptive::getCoroutine()?->getCid() ?? -1; + if (!isset(self::$container[$cid])) { + self::$container[$cid] = self::buildContainer(); } - return self::$container; + return self::$container[$cid]; } public static function clearEventContainer(): void { - self::$container = null; + $cid = Adaptive::getCoroutine()?->getCid() ?? -1; + unset(self::$container[$cid]); } private static function buildContainer(): Container