protected function launchNextTask()
    {
        if (! $this->numberOfThreadsToLaunch) {
            return false;
        }
        
        $taskInfos = $this->pool[$this->numberOfTasks - $this->numberOfThreadsToLaunch];
        
        $taskInfos['task']->fork();
        $this->numberOfRunningThreads++;
        $this->numberOfThreadsToLaunch--;
        
        return true;
    }