diff --git a/src/pocketmine/scheduler/AsyncPool.php b/src/pocketmine/scheduler/AsyncPool.php index cb7b1a5fa..4d722f2d5 100644 --- a/src/pocketmine/scheduler/AsyncPool.php +++ b/src/pocketmine/scheduler/AsyncPool.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace pocketmine\scheduler; use pocketmine\Server; +use pocketmine\utils\Utils; /** * Manages general-purpose worker threads used for processing asynchronous tasks, and the tasks submitted to those @@ -96,6 +97,7 @@ class AsyncPool{ * @param \Closure $hook */ public function addWorkerStartHook(\Closure $hook) : void{ + Utils::validateCallableSignature(function(int $worker) : void{}, $hook); $this->workerStartHooks[spl_object_hash($hook)] = $hook; foreach($this->workers as $i => $worker){ $hook($i); diff --git a/src/pocketmine/scheduler/ClosureTask.php b/src/pocketmine/scheduler/ClosureTask.php index 8ada271ff..f023173d4 100644 --- a/src/pocketmine/scheduler/ClosureTask.php +++ b/src/pocketmine/scheduler/ClosureTask.php @@ -45,6 +45,7 @@ class ClosureTask extends Task{ * @param \Closure $closure Must accept only ONE parameter, $currentTick */ public function __construct(\Closure $closure){ + Utils::validateCallableSignature(function(int $currentTick) : void{}, $closure); $this->closure = $closure; }