1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 08:27:12 -07:00

solved problem with reversed references in graph

This commit is contained in:
Kevin Mas Ruiz 2016-05-03 18:38:10 +02:00
parent 9436ad1b88
commit 6614bb203c
4 changed files with 28 additions and 15 deletions

View file

@ -216,22 +216,25 @@ class TaskManager @Inject constructor(val args: Args,
while (toProcess.size > 0) {
log(3, " New batch of nodes to process: $toProcess")
toProcess.forEach { current ->
toProcess.filter { !seen.contains(toName(it)) }.forEach { current ->
result.addNode(current)
seen.add(toName(current))
// if (! maybeAddEdge(current, invertedDependsOn, true, true)) {
if (! maybeAddEdge(current, invertedDependsOn, true, true)) {
maybeAddEdge(current, dependsOn, true, false)
// }
// if (! maybeAddEdge(current, invertedRunAfter, false, true)) {
}
if (! maybeAddEdge(current, invertedRunAfter, false, true)) {
maybeAddEdge(current, runAfter, false, false)
// }
if (! maybeAddEdge(current, invertedReverseDependsOn, true, false)) {
maybeAddEdge(current, reverseDependsOn, true, true)
}
if (! maybeAddEdge(current, invertedRunBefore, false, false)) {
maybeAddEdge(current, runBefore, false, true)
if (! maybeAddEdge(current, reverseDependsOn, true, true)) {
maybeAddEdge(current, invertedReverseDependsOn, true, false)
}
if (! maybeAddEdge(current, runBefore, false, true)) {
maybeAddEdge(current, invertedRunBefore, false, false)
}
newToProcess.addAll(dependsOn[toName(current)].flatMap { nodeMap[it] })
return@forEach Unit
}
toProcess.clear()
toProcess.addAll(newToProcess)
@ -412,4 +415,4 @@ class TaskWorker(val tasks: List<ITask>, val dryRun: Boolean, val messages: Muta
// override val timeOut : Long = 10000
override val priority: Int = 0
}
}