protected function hasConcurrentActiveExecution(Execution $execution) { if (!$execution->isConcurrent()) { return false; } foreach ($execution->findConcurrentExecutions() as $concurrent) { if ($concurrent === $execution) { continue; } if (!$concurrent->isActive() || $concurrent->getNode() === $execution->getNode()) { continue; } if ($this->isReachable($concurrent->getNode(), $execution->getNode(), $execution, new \SplObjectStorage())) { return true; } } }