diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index 80f992858..d5ccc3d04 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -561,20 +561,25 @@ class NetworkSession{ $this->compressedQueue->enqueue($payload); $payload->onResolve(function(CompressBatchPromise $payload) : void{ if($this->connected && $this->compressedQueue->bottom() === $payload){ - $this->compressedQueue->dequeue(); //result unused - $this->sendEncoded($payload->getResult()); + Timings::$playerNetworkSend->startTiming(); + try{ + $this->compressedQueue->dequeue(); //result unused + $this->sendEncoded($payload->getResult()); - while(!$this->compressedQueue->isEmpty()){ - /** @var CompressBatchPromise $current */ - $current = $this->compressedQueue->bottom(); - if($current->hasResult()){ - $this->compressedQueue->dequeue(); + while(!$this->compressedQueue->isEmpty()){ + /** @var CompressBatchPromise $current */ + $current = $this->compressedQueue->bottom(); + if($current->hasResult()){ + $this->compressedQueue->dequeue(); - $this->sendEncoded($current->getResult()); - }else{ - //can't send any more queued until this one is ready - break; + $this->sendEncoded($current->getResult()); + }else{ + //can't send any more queued until this one is ready + break; + } } + }finally{ + Timings::$playerNetworkSend->stopTiming(); } } });