/** * The money maker. Runs all ExecutableTest objects in separate processes. */ public function run() { parent::run(); while (count($this->running) || count($this->pending)) { foreach ($this->running as $key => $test) { if (!$this->testIsStillRunning($test)) { unset($this->running[$key]); $this->releaseToken($key); } } $this->fillRunQueue(); usleep(10000); } $this->complete(); }