public function start($options = PTHREADS_INHERIT_ALL) { ThreadManager::getInstance()->add($this); if (!$this->isRunning() and !$this->isJoined() and !$this->isTerminated() and !$this->isShutdown()) { return parent::start($options); } return false; }
public function start(int $options = PTHREADS_INHERIT_ALL) { ThreadManager::getInstance()->add($this); if (!$this->isRunning() and !$this->isJoined() and !$this->isTerminated()) { if ($this->getClassLoader() === null) { $this->setClassLoader(); } return parent::start($options); } return false; }
public function testWorkerGc() { $worker = new Worker(); $work = new WorkerTestWork(); $worker->start(); $worker->stack($work); $worker->shutdown(); $this->assertEquals(1, $worker->collect(function ($task) { return false; })); $this->assertEquals(0, $worker->collect(function ($task) { return $task->isGarbage(); })); }
private function startWorkers() { $wrapper = realpath(__DIR__ . '/../../../../bin/phpunit-wrapper'); for ($i = 1; $i <= $this->options->processes; $i++) { $worker = new Worker(); if ($this->options->noTestTokens) { $token = null; } else { $token = $i; } $worker->start($wrapper, $token); $this->streams[] = $worker->stdout(); $this->workers[] = $worker; } }
public function testWorkerGc() { $worker = new Worker(); $work = new WorkerTestWork(); $worker->start(); $worker->stack($work); $work->synchronized(function ($work) { if (!$work->isGarbage()) { $work->wait(); } }, $work); $this->assertEquals($worker->collect(function ($task) { return false; }), 1); $this->assertEquals($worker->collect(function ($task) { return $task->isGarbage(); }), 0); }
$np = 0; for ($i = 0; $i <= $n; $i++) { $x = lcg_value() * 2 - 1; $y = lcg_value() * 2 - 1; if ($x ** 2 + $y ** 2 <= 1) { $np++; } } return $np; }; /* make call in background thread */ $argv = [$interation / $threads]; $time_start = microtime(true); $np_result = 0; // Initialize and start the threads $worker = new Worker(); $work = array(); $o = 0; while (++$o < $threads) { /* items stacked could be using resources available in worker */ $work[] = new ParallelThread($closure, $argv); } foreach ($work as $w) { $worker->stack($w); } $worker->start(); //$pi = 4 * $np_result / ($argv[0]*($threads)); //echo $np_result."<br>"; //echo $pi."<br>"; echo microtime(true) - $time_start; $worker->shutdown();
public function start(int $options = PTHREADS_INHERIT_ALL) { return parent::start(PTHREADS_INHERIT_NONE); }
public final function start($options = PTHREADS_INHERIT_ALL) { ThreadManager::getInstance()->add($this); return parent::start($options); }
public function start() { return parent::start(PTHREADS_INHERIT_NONE); }
/** * Start the worker * @param type $options * @return type */ public function start($options = null) { return parent::start($this->inheritance); }