From ecf662bf74e49a08ef0926936852a6c2b1122dcd Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 5 Feb 2020 20:31:01 +0000 Subject: [PATCH] Server: Lazy-init static sleeper as-needed this makes it testable without a server context. --- src/pocketmine/Server.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pocketmine/Server.php b/src/pocketmine/Server.php index ae84e70dc6..f2bfc3efd1 100644 --- a/src/pocketmine/Server.php +++ b/src/pocketmine/Server.php @@ -186,7 +186,7 @@ class Server{ /** @var Server */ private static $instance = null; - /** @var \Threaded */ + /** @var \Threaded|null */ private static $sleeper = null; /** @var SleeperHandler */ @@ -1284,7 +1284,10 @@ class Server{ * @return void */ public static function microSleep(int $microseconds){ - Server::$sleeper->synchronized(function(int $ms) : void{ + if(self::$sleeper === null){ + self::$sleeper = new \Threaded(); + } + self::$sleeper->synchronized(function(int $ms) : void{ Server::$sleeper->wait($ms); }, $microseconds); } @@ -1294,7 +1297,6 @@ class Server{ throw new \InvalidStateException("Only one server instance can exist at once"); } self::$instance = $this; - self::$sleeper = new \Threaded; $this->tickSleeper = new SleeperHandler(); $this->autoloader = $autoloader; $this->logger = $logger;