diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt index 43aaaf63..b02b8b22 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/DynamicGraph.kt @@ -142,7 +142,7 @@ class DynamicGraphExecutor(val graph : DynamicGraph, val factory: IThreadW var gotError = false val nodesRun = hashSetOf() var newFreeNodes = HashSet(graph.freeNodes) - while (! gotError && running > 0 || newFreeNodes.size > 0) { + while (! gotError && (running > 0 || newFreeNodes.size > 0)) { nodesRun.addAll(newFreeNodes) val callables : List> = factory.createWorkers(newFreeNodes) callables.forEach { completion.submit(it) } @@ -160,6 +160,7 @@ class DynamicGraphExecutor(val graph : DynamicGraph, val factory: IThreadW newFreeNodes.addAll(graph.freeNodes.minus(nodesRun)) } else { log(2, "Task failed: $taskResult") + newFreeNodes.clear() gotError = true } } catch(ex: TimeoutException) {