autogen/dotnet/test/Microsoft.AutoGen.Core.Tests/InProcessRuntimeExtensions.cs
Jacob Alber 0a988b6393
fix: Recurrent SendMessageAsync deadlock in message handler (#5916)
In the .NET InProcessRuntime we tried to minimize the amount of tasks
created. Unfortunately, this results in a deadlock when a send message
handler is attempting to SendMessage during the handling of the incoming
message.

The fix is to create a new task for delivering the message in the
message processing loop, which creates a new logical stack to run the
delivery, freeing the loop to process the next delivery request.

* Also fixes passing exceptions and cancellations back to the waiting
task.
* Also fixes a build slowdown on Windows due to uv and llama-cpp

Closes #5915
2025-03-12 14:58:07 -04:00

13 lines
364 B
C#

// Copyright (c) Microsoft Corporation. All rights reserved.
// InProcessRuntimeExtensions.cs
namespace Microsoft.AutoGen.Core.Tests;
public static class InProcessRuntimeExtensions
{
public static async ValueTask RunUntilIdleAndRestartAsync(this InProcessRuntime this_)
{
await this_.RunUntilIdleAsync();
await this_.StartAsync();
}
}