DefaultTaskExecutionPlanParallelTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Stop using "task" to refer to nodes in the execution plan

    • -837
    • +0
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 23 more files in changeset.
Schedule artifact transforms early (#5657)

Schedule artifact transforms early when possible

Before this change artifact transforms were executed as late as possible, typically when snapshotting the task's input that would consume them. With this change artifact transforms are scheduled like tasks whenever possible, and are executed as soon as all their dependencies are built.

The execution engine now understands three different kinds of "work":

- tasks in the current build (this is the most typical type of work)

- tasks from another included build referenced from the current build

- artifact transforms discovered via task inputs

There are two kinds of artifact transforms that are not executed alongside tasks after this change:

- transforms that never appear in a task's (or another transform's) inputs

- transforms that transform file dependencies

These cases are handled as before, i.e. the transforms are executed when they are consumed.

Some types have been introduced to cover the new concepts of work and transforms wrt building the graph of work. Several existing types are still have "task" in their names even though they now work with more than just tasks. These should be renamed/refactored in follow-up PRs.

    • -18
    • +20
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 66 more files in changeset.
Expose file collection dependencies declared in included builds to consumers in other builds in the composite.

Rework task graph assembly so that tasks that cross build boundaries as a dependency of another task no longer need to be wrapped in a `TaskReference` and remove the special handling from dependency resolution artifact and IDE artifact implementations.

No longer add a synthetic delegate task to each project that such a task is consumed as a dependency and decouple the task execution plan from `Task` slightly so that it can deal with the difference between tasks in the current build and tasks running asynchronously in another build.

    • -1
    • +2
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 24 more files in changeset.
Extract some logic out of `DefaultTaskExecutionPlan` so that it no longer needs to know how to calculate `TaskInfo` nodes that a given task depends on.

    • -3
    • +1
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 4 more files in changeset.
Fix bug when finalizer tasks ran too early

Finalizers must run after the last task to be finalized.

    • -0
    • +32
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 3 more files in changeset.
Remove now unused declarations

    • -13
    • +8
    ./DefaultTaskExecutionPlanParallelTest.groovy
Test parallel task execution without extra threads

Now that all the locking happens somewhere else, we can test parallel

task execution constraints easily without running different threads.

    • -442
    • +388
    ./DefaultTaskExecutionPlanParallelTest.groovy
Release locks in TaskExecutionPlanParallelTest

    • -0
    • +1
    ./DefaultTaskExecutionPlanParallelTest.groovy
Release locks via ResourceLockState

That makes the code a little bit simpler, since we don't have to track

the locks we already aquired.

    • -1
    • +1
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 5 more files in changeset.
Rename selectNextNode to selectNextTask

    • -1
    • +1
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 5 more files in changeset.
Remove coordination service from task execution plan

The callers of methods on the execution plan need to take care of

proper synchronisation.

    • -5
    • +1
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 3 more files in changeset.
Simplify TaskExecutionPlanParallelTest

    • -14
    • +7
    ./DefaultTaskExecutionPlanParallelTest.groovy
Fix cancellation logic

    • -1
    • +1
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 8 more files in changeset.
Move project locking logic back to TaskExecutionPlan

    • -15
    • +51
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 3 more files in changeset.
First shot at fixing TaskExecutionPlanParallelTest

    • -1
    • +5
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 1 more file in changeset.
Changed the interaction between `TaskExecutionPlan` and the `TaskPlanExecutor` so that `TaskInfo` objects do not leak out of the execution plan. Moved responsibility for cleaning up at the completion of a task inside the execution plan (where the logic is anyway), so that now the executor only receives `Task` objects rather than the internal scheduling state. This also allows two state lock operations that previously happened one immediately after the other, to be merged into a single lock operation.

    • -21
    • +21
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 5 more files in changeset.
Prevent parallel execution of tasks with overlapping local state

    • -0
    • +64
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 1 more file in changeset.
Merge branch 'release_4.0.2' into release

    • -0
    • +27
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 1 more file in changeset.
Fix issue with enforced tasks and task graph exception

Fixes issue #2407 where an exception thrown while walking a task

graph with a finalizer can cause the build to hang.

    • -0
    • +27
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 3 more files in changeset.
Create a test fixture for ParallelismConfigurationManager

    • -9
    • +2
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 29 more files in changeset.
Rename ParallelExecutionManager to ParallelismConfigurationManager

    • -3
    • +3
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 35 more files in changeset.
Make sure we stop included builds even when the outer build fails

    • -0
    • +2
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 5 more files in changeset.
Add descriptive names to task workers

    • -1
    • +1
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 7 more files in changeset.
Build operations from included builds should be nested under the outer most build operation

- Add root BuildOperation to GradleInternal

- Attach parent build operation to settings and configuration operations,

calculate task graph and execution operations

- buildSrc operations should also be under the outermost build

- In composite build tests, always assert operations are a single tree

    • -1
    • +1
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 26 more files in changeset.
Basic support for parallelism configuration notifications

    • -1
    • +9
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 49 more files in changeset.
Reuse worker lease in task workers

    • -2
    • +2
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 6 more files in changeset.
Move all locking during task selection into a single thread

    • -36
    • +33
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 14 more files in changeset.
Use ready queue to separate ready tasks and blocked tasks

    • -0
    • +11
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 11 more files in changeset.
Basic support for @Destroys annotation

    • -2
    • +281
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 16 more files in changeset.
Introduce a resource lock coordination service

- convert worker leases to resource locks

- atomically lock project and worker lease when selecting a task to execute

- change task execution plan to lock around resource lock state

    • -5
    • +5
    ./DefaultTaskExecutionPlanParallelTest.groovy
  1. … 75 more files in changeset.