From a3d37ac611ea6a01e660b780261abdfc9b10d7c2 Mon Sep 17 00:00:00 2001 From: Michael Staib Date: Mon, 23 Mar 2026 23:25:13 +0000 Subject: [PATCH] Introduce BeginExecute to express fire-and-forget intent on ExecutionNode --- .../src/Fusion.Execution/Execution/ExecutionState.cs | 2 +- .../Fusion.Execution/Execution/Nodes/ExecutionNode.cs | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/ExecutionState.cs b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/ExecutionState.cs index b3149d37dc6..fd6b5ac9475 100644 --- a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/ExecutionState.cs +++ b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/ExecutionState.cs @@ -133,7 +133,7 @@ public void StartNode(OperationPlanContext context, ExecutionNode node, Cancella } RemoveFromBacklog(node.Id, NodeStateNone); - _ = node.ExecuteAsync(context, cancellationToken); + node.BeginExecute(context, cancellationToken); } public void EnqueueForCompletion(ExecutionNodeResult result) diff --git a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/Nodes/ExecutionNode.cs b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/Nodes/ExecutionNode.cs index 7aa864145d8..af619b2cc0f 100644 --- a/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/Nodes/ExecutionNode.cs +++ b/src/HotChocolate/Fusion/src/Fusion.Execution/Execution/Nodes/ExecutionNode.cs @@ -54,7 +54,14 @@ public abstract class ExecutionNode : IOperationPlanNode, IEquatable public ReadOnlySpan OptionalDependencies => _optionalDependencies; - public async Task ExecuteAsync( +#pragma warning disable CA2012 + public void BeginExecute( + OperationPlanContext context, + CancellationToken cancellationToken = default) + => _ = ExecuteAsync(context, cancellationToken); +#pragma warning restore CA2012 + + private async ValueTask ExecuteAsync( OperationPlanContext context, CancellationToken cancellationToken = default) {