mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-09-04 17:06:16 +00:00
Implemented Threaded ClassLoader, improves class loading while on different threads (no need to synchronize states)
This commit is contained in:
@ -25,20 +25,22 @@ use pocketmine\Worker;
|
||||
|
||||
class AsyncWorker extends Worker{
|
||||
|
||||
public $loader;
|
||||
|
||||
public function __construct(\ClassLoader $loader){
|
||||
$this->loader = $loader;
|
||||
}
|
||||
|
||||
public function run(){
|
||||
if(!interface_exists("ClassLoader", false)){
|
||||
require(\pocketmine\PATH . "src/spl/ClassLoader.php");
|
||||
}
|
||||
if(!class_exists("BaseClassLoader", false)){
|
||||
require(\pocketmine\PATH . "src/spl/BaseClassLoader.php");
|
||||
require(\pocketmine\PATH . "src/pocketmine/CompatibleClassLoader.php");
|
||||
}
|
||||
$autoloader = new \BaseClassLoader();
|
||||
$autoloader->addPath(\pocketmine\PATH . "src");
|
||||
$autoloader->addPath(\pocketmine\PATH . "src" . DIRECTORY_SEPARATOR . "spl");
|
||||
$autoloader->register(true);
|
||||
$this->loader->register(true);
|
||||
}
|
||||
|
||||
public function start($options = PTHREADS_INHERIT_NONE){
|
||||
parent::start(PTHREADS_INHERIT_CONSTANTS | PTHREADS_INHERIT_FUNCTIONS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user