ServerScheduler: Require a Logger instance as ctor param, now non-dependent on Server

yay for unit-testing and reusability!!!
This commit is contained in:
Dylan K. Taylor 2018-05-30 12:29:19 +01:00
parent d03f36ebee
commit 132746aa3d
2 changed files with 8 additions and 5 deletions

View File

@ -1525,7 +1525,7 @@ class Server{
$this->logger->info($this->getLanguage()->translateString("pocketmine.server.start", [TextFormat::AQUA . $this->getVersion() . TextFormat::RESET])); $this->logger->info($this->getLanguage()->translateString("pocketmine.server.start", [TextFormat::AQUA . $this->getVersion() . TextFormat::RESET]));
$this->scheduler = new ServerScheduler(); $this->scheduler = new ServerScheduler($this->logger);
if(($poolSize = $this->getProperty("settings.async-workers", "auto")) === "auto"){ if(($poolSize = $this->getProperty("settings.async-workers", "auto")) === "auto"){
$poolSize = 2; $poolSize = 2;

View File

@ -29,10 +29,12 @@ namespace pocketmine\scheduler;
use pocketmine\plugin\Plugin; use pocketmine\plugin\Plugin;
use pocketmine\plugin\PluginException; use pocketmine\plugin\PluginException;
use pocketmine\Server;
use pocketmine\utils\ReversePriorityQueue; use pocketmine\utils\ReversePriorityQueue;
class ServerScheduler{ class ServerScheduler{
/** @var \Logger */
private $logger;
/** /**
* @var ReversePriorityQueue<Task> * @var ReversePriorityQueue<Task>
*/ */
@ -49,7 +51,8 @@ class ServerScheduler{
/** @var int */ /** @var int */
protected $currentTick = 0; protected $currentTick = 0;
public function __construct(){ public function __construct(\Logger $logger){
$this->logger = $logger;
$this->queue = new ReversePriorityQueue(); $this->queue = new ReversePriorityQueue();
} }
@ -197,8 +200,8 @@ class ServerScheduler{
try{ try{
$task->run($this->currentTick); $task->run($this->currentTick);
}catch(\Throwable $e){ }catch(\Throwable $e){
Server::getInstance()->getLogger()->critical("Could not execute task " . $task->getTaskName() . ": " . $e->getMessage()); $this->logger->critical("Could not execute task " . $task->getTaskName() . ": " . $e->getMessage());
Server::getInstance()->getLogger()->logException($e); $this->logger->logException($e);
} }
$task->timings->stopTiming(); $task->timings->stopTiming();
} }