From 685481b1720c62e07ecc9ab3657645e6b75e28a6 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 6 May 2019 16:43:05 +0100 Subject: [PATCH] NetworkSession: improve GC performance without crashing everything this is necessary because some handlers have circular references to the session, which causes GC lag collecting them. This change allows them to be collected immediately without nuking internal state. --- src/pocketmine/network/mcpe/NetworkSession.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pocketmine/network/mcpe/NetworkSession.php b/src/pocketmine/network/mcpe/NetworkSession.php index 0aa4f9dec8..2038e073da 100644 --- a/src/pocketmine/network/mcpe/NetworkSession.php +++ b/src/pocketmine/network/mcpe/NetworkSession.php @@ -36,6 +36,7 @@ use pocketmine\network\BadPacketException; use pocketmine\network\mcpe\handler\DeathSessionHandler; use pocketmine\network\mcpe\handler\HandshakeSessionHandler; use pocketmine\network\mcpe\handler\LoginSessionHandler; +use pocketmine\network\mcpe\handler\NullSessionHandler; use pocketmine\network\mcpe\handler\PreSpawnSessionHandler; use pocketmine\network\mcpe\handler\ResourcePacksSessionHandler; use pocketmine\network\mcpe\handler\SessionHandler; @@ -419,6 +420,7 @@ class NetworkSession{ $this->disconnectGuard = true; $func(); $this->disconnectGuard = false; + $this->setHandler(new NullSessionHandler()); $this->connected = false; $this->manager->remove($this); }