From 967d7a4cc8a13b2172f99c4585a05090e72c564d Mon Sep 17 00:00:00 2001 From: Peder Holdgaard Pedersen <127606677+PederHP@users.noreply.github.com> Date: Sat, 8 Mar 2025 20:21:14 +0100 Subject: [PATCH] Fixed two reliability issues highlighted by SonarCloud (#44) --- src/mcpdotnet/Protocol/Transport/StdioServerTransport.cs | 9 ++++++--- tests/mcpdotnet.TestServer/Program.cs | 4 +++- tests/mcpdotnet.TestServer/mcpdotnet.TestServer.csproj | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mcpdotnet/Protocol/Transport/StdioServerTransport.cs b/src/mcpdotnet/Protocol/Transport/StdioServerTransport.cs index ac91819..30ea5b6 100644 --- a/src/mcpdotnet/Protocol/Transport/StdioServerTransport.cs +++ b/src/mcpdotnet/Protocol/Transport/StdioServerTransport.cs @@ -169,9 +169,12 @@ public sealed class StdioServerTransport : TransportBase, IServerTransport { _logger.TransportCleaningUp(EndpointName); - _shutdownCts?.Cancel(); - _shutdownCts?.Dispose(); - _shutdownCts = null; + if (_shutdownCts != null) + { + await _shutdownCts.CancelAsync().ConfigureAwait(false); + _shutdownCts.Dispose(); + _shutdownCts = null; + } if (_readTask != null) { diff --git a/tests/mcpdotnet.TestServer/Program.cs b/tests/mcpdotnet.TestServer/Program.cs index 408cced..74cb874 100644 --- a/tests/mcpdotnet.TestServer/Program.cs +++ b/tests/mcpdotnet.TestServer/Program.cs @@ -5,6 +5,8 @@ using McpDotNet.Server; using Microsoft.Extensions.Logging; using Serilog; +namespace McpDotNet.TestServer; + internal static class Program { private static ILoggerFactory CreateLoggerFactory() @@ -336,7 +338,7 @@ internal static class Program Log.Logger.Information("Server started."); // Run until process is stopped by the client (parent process) - while (true) + while (true) // NOSONAR { await Task.Delay(1000); } diff --git a/tests/mcpdotnet.TestServer/mcpdotnet.TestServer.csproj b/tests/mcpdotnet.TestServer/mcpdotnet.TestServer.csproj index ef2c91a..9dc33a7 100644 --- a/tests/mcpdotnet.TestServer/mcpdotnet.TestServer.csproj +++ b/tests/mcpdotnet.TestServer/mcpdotnet.TestServer.csproj @@ -6,6 +6,7 @@ enable enable TestServer + McpDotNet.TestServer