summaryrefslogtreecommitdiff
path: root/src/Agent.Mcp/QueuedTaskWorker.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Agent.Mcp/QueuedTaskWorker.cs')
-rw-r--r--src/Agent.Mcp/QueuedTaskWorker.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Agent.Mcp/QueuedTaskWorker.cs b/src/Agent.Mcp/QueuedTaskWorker.cs
index 23404e3..edea1ad 100644
--- a/src/Agent.Mcp/QueuedTaskWorker.cs
+++ b/src/Agent.Mcp/QueuedTaskWorker.cs
@@ -12,7 +12,15 @@ public sealed class QueuedTaskWorker(TaskRegistry registry, AgentRuntime runtime
{
if (!registry.Transition(taskId, AgentTaskState.Planning, "planning")) continue;
registry.Transition(taskId, AgentTaskState.Running, "ollama chat");
- await runtime.ExecuteAsync(taskId, stoppingToken).ConfigureAwait(false);
+ using var linked = CancellationTokenSource.CreateLinkedTokenSource(stoppingToken, registry.GetCancellationToken(taskId));
+ try
+ {
+ await runtime.ExecuteAsync(taskId, linked.Token).ConfigureAwait(false);
+ }
+ catch (OperationCanceledException) when (linked.IsCancellationRequested)
+ {
+ registry.Cancel(taskId);
+ }
}
}
}