From a0907dc587e2f2b5b1441760dcbbf0de9ead5e57 Mon Sep 17 00:00:00 2001 From: Adam Murdoch Date: Wed, 24 Oct 2018 10:05:20 +1100 Subject: [PATCH] Simplify some generics and create less garbage when running `RunnableBuildOperation` build operations. --- .../operations/DefaultBuildOperationExecutor.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/subprojects/core/src/main/java/org/gradle/internal/operations/DefaultBuildOperationExecutor.java b/subprojects/core/src/main/java/org/gradle/internal/operations/DefaultBuildOperationExecutor.java index c36a77ab5ac9..eb5297cdf314 100644 --- a/subprojects/core/src/main/java/org/gradle/internal/operations/DefaultBuildOperationExecutor.java +++ b/subprojects/core/src/main/java/org/gradle/internal/operations/DefaultBuildOperationExecutor.java @@ -58,6 +58,7 @@ public class DefaultBuildOperationExecutor implements BuildOperationExecutor, St private final BuildOperationIdFactory buildOperationIdFactory; private final CurrentBuildOperationRef currentBuildOperationRef = CurrentBuildOperationRef.instance(); + private final RunnableBuildOperationWorker runnableBuildOperationWorker = new RunnableBuildOperationWorker(); public DefaultBuildOperationExecutor(BuildOperationListener listener, Clock clock, ProgressLoggerFactory progressLoggerFactory, BuildOperationQueueFactory buildOperationQueueFactory, ExecutorFactory executorFactory, ParallelismConfigurationManager parallelismConfigurationManager, BuildOperationIdFactory buildOperationIdFactory) { this.listener = listener; @@ -87,7 +88,7 @@ public BuildOperationRef getCurrentOperation() { @Override public void run(RunnableBuildOperation buildOperation) { try { - execute(buildOperation, new RunnableBuildOperationWorker(), getCurrentBuildOperation()); + execute(buildOperation, runnableBuildOperationWorker, getCurrentBuildOperation()); } finally { maybeStopUnmanagedThreadOperation(); } @@ -107,7 +108,7 @@ public T call(CallableBuildOperation buildOperation) { @Override public void runAll(Action> schedulingAction) { try { - executeInParallel(new ParentPreservingQueueWorker(new RunnableBuildOperationWorker()), schedulingAction); + executeInParallel(new ParentPreservingQueueWorker(runnableBuildOperationWorker), schedulingAction); } finally { maybeStopUnmanagedThreadOperation(); } @@ -289,14 +290,14 @@ public void setStatus(String status) { } } - private static class RunnableBuildOperationWorker implements BuildOperationWorker { + private static class RunnableBuildOperationWorker implements BuildOperationWorker { @Override public String getDisplayName() { return "runnable build operation"; } @Override - public void execute(O buildOperation, BuildOperationContext context) { + public void execute(RunnableBuildOperation buildOperation, BuildOperationContext context) { buildOperation.run(context); } } @@ -325,9 +326,9 @@ public T getReturnValue() { */ private class ParentPreservingQueueWorker implements BuildOperationQueue.QueueWorker { private BuildOperationState parent; - private BuildOperationWorker worker; + private BuildOperationWorker worker; - private ParentPreservingQueueWorker(BuildOperationWorker worker) { + private ParentPreservingQueueWorker(BuildOperationWorker worker) { this.parent = maybeStartUnmanagedThreadOperation(getCurrentBuildOperation()); this.worker = worker; }