mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-10 05:34:54 +00:00
Merge branch 'minor-next' into compressor-threads
This commit is contained in:
commit
671c65d787
@ -24,7 +24,9 @@ declare(strict_types=1);
|
|||||||
namespace pocketmine;
|
namespace pocketmine;
|
||||||
|
|
||||||
use pocketmine\snooze\SleeperHandler;
|
use pocketmine\snooze\SleeperHandler;
|
||||||
|
use pocketmine\snooze\SleeperHandlerEntry;
|
||||||
use pocketmine\timings\TimingsHandler;
|
use pocketmine\timings\TimingsHandler;
|
||||||
|
use pocketmine\utils\Utils;
|
||||||
use function hrtime;
|
use function hrtime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -35,12 +37,29 @@ final class TimeTrackingSleeperHandler extends SleeperHandler{
|
|||||||
|
|
||||||
private int $notificationProcessingTimeNs = 0;
|
private int $notificationProcessingTimeNs = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var TimingsHandler[]
|
||||||
|
* @phpstan-var array<string, TimingsHandler>
|
||||||
|
*/
|
||||||
|
private static array $handlerTimings = [];
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private TimingsHandler $timings
|
private TimingsHandler $timings
|
||||||
){
|
){
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function addNotifier(\Closure $handler) : SleeperHandlerEntry{
|
||||||
|
$name = Utils::getNiceClosureName($handler);
|
||||||
|
$timings = self::$handlerTimings[$name] ??= new TimingsHandler("Snooze Handler: " . $name, $this->timings);
|
||||||
|
|
||||||
|
return parent::addNotifier(function() use ($timings, $handler) : void{
|
||||||
|
$timings->startTiming();
|
||||||
|
$handler();
|
||||||
|
$timings->stopTiming();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the time in nanoseconds spent processing notifications since the last reset.
|
* Returns the time in nanoseconds spent processing notifications since the last reset.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user