Clone
Adam Murdoch
committed
on 21 Oct 18
Avoid locking the target project of project dependencies during task execution.
During work graph calculation, add an action that runs immed… Show more
Avoid locking the target project of project dependencies during task execution.

During work graph calculation, add an action that runs immediately after the producing task of an artifact completed that caclculates the dependency resolution metadata for that artifact. This happens before the consuming tasks are started, and so is available without locking when those tasks execute. Previously this calculation was done by consuming tasks, and they would need to lock the target project to do this.

This strategy works only for those tasks that declare that they will need these files (e.g. are declared as inputs in some form). For tasks that do not declare these inputs (possibly because there is no easy way to do so yet), the action is not added and the locking will still occur when the consuming task executes.

The implementation bolts a new concept onto the task nodes, as an increment towards making these actions real nodes in the graph that can be scheduled in the normal way.

Show less

donat/test-windows10 + 382 more