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->scheduler = new ServerScheduler();
$this->scheduler = new ServerScheduler($this->logger);
if(($poolSize = $this->getProperty("settings.async-workers", "auto")) === "auto"){
$poolSize = 2;

View File

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