Skip to content

Commit c3df5c5

Browse files
committed
Address feedback
1 parent 8f06b0f commit c3df5c5

File tree

5 files changed

+21
-31
lines changed

5 files changed

+21
-31
lines changed

src/ModelContextProtocol.Core/Client/StreamClientSessionTransport.cs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ internal class StreamClientSessionTransport : TransportBase
1515
private readonly TextReader _serverOutput;
1616
private readonly Stream _serverInputStream;
1717
private readonly SemaphoreSlim _sendLock = new(1, 1);
18-
private CancellationTokenSource? _shutdownCts = new();
18+
private readonly CancellationTokenSource _shutdownCts = new();
1919
private Task? _readTask;
2020

2121
/// <summary>
@@ -182,24 +182,14 @@ private async Task ProcessMessageAsync(string line, CancellationToken cancellati
182182
/// </summary>
183183
protected void CancelShutdown()
184184
{
185-
try
186-
{
187-
_shutdownCts?.Cancel();
188-
}
189-
catch (ObjectDisposedException)
190-
{
191-
}
185+
_shutdownCts.Cancel();
192186
}
193187

194188
protected virtual async ValueTask CleanupAsync(Exception? error = null, CancellationToken cancellationToken = default)
195189
{
196190
LogTransportShuttingDown(Name);
197191

198-
if (Interlocked.Exchange(ref _shutdownCts, null) is { } shutdownCts)
199-
{
200-
await shutdownCts.CancelAsync().ConfigureAwait(false);
201-
shutdownCts.Dispose();
202-
}
192+
await _shutdownCts.CancelAsync().ConfigureAwait(false);
203193

204194
if (Interlocked.Exchange(ref _readTask, null) is Task readTask)
205195
{

tests/ModelContextProtocol.Tests/Configuration/McpServerOptionsSetupTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ public void Configure_WithManualResourceSubscribeCapability_AndWithResources_Pre
164164
}
165165

166166
[Fact]
167-
public async Task ServerCapabilities_WithManualResourceSubscribeCapability_AndWithResources_ExposesSubscribeCapability()
167+
public void ServerCapabilities_WithManualResourceSubscribeCapability_AndWithResources_ExposesSubscribeCapability()
168168
{
169169
// This test would require a full client-server setup, so we'll test via options validation instead
170170
var services = new ServiceCollection();
@@ -183,7 +183,7 @@ public async Task ServerCapabilities_WithManualResourceSubscribeCapability_AndWi
183183
.WithResources<SimpleResourceType>()
184184
.WithStreamServerTransport(Stream.Null, Stream.Null);
185185

186-
await using var sp = services.BuildServiceProvider();
186+
using var sp = services.BuildServiceProvider();
187187
var options = sp.GetRequiredService<IOptions<McpServerOptions>>().Value;
188188

189189
// The options should preserve the user's manually set capabilities

tests/ModelContextProtocol.Tests/Configuration/McpServerResourceCapabilityIntegrationTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ protected override void ConfigureServices(ServiceCollection services, IMcpServer
8585
}
8686

8787
[Fact]
88-
public async Task Resources_AreExposed_WhenSubscribeCapabilitySetInAddMcpServerOptions()
88+
public void Resources_AreExposed_WhenSubscribeCapabilitySetInAddMcpServerOptions()
8989
{
9090
// Create a fresh service collection to test the exact scenario from the issue
9191
var services = new ServiceCollection();
@@ -108,7 +108,7 @@ public async Task Resources_AreExposed_WhenSubscribeCapabilitySetInAddMcpServerO
108108
.WithResources<LiveResources>()
109109
.WithStreamServerTransport(Stream.Null, Stream.Null);
110110

111-
await using var serviceProvider = services.BuildServiceProvider();
111+
using var serviceProvider = services.BuildServiceProvider();
112112
var mcpOptions = serviceProvider.GetRequiredService<IOptions<McpServerOptions>>().Value;
113113

114114
// Verify capabilities are preserved
@@ -122,15 +122,15 @@ public async Task Resources_AreExposed_WhenSubscribeCapabilitySetInAddMcpServerO
122122
}
123123

124124
[Fact]
125-
public async Task ResourcesCapability_IsCreated_WhenOnlyResourcesAreProvided()
125+
public void ResourcesCapability_IsCreated_WhenOnlyResourcesAreProvided()
126126
{
127127
// Test that ResourcesCapability is created even without handlers or manual setting
128128
var services = new ServiceCollection();
129129
var builder = services.AddMcpServer()
130130
.WithResources<LiveResources>()
131131
.WithStreamServerTransport(Stream.Null, Stream.Null);
132132

133-
await using var serviceProvider = services.BuildServiceProvider();
133+
using var serviceProvider = services.BuildServiceProvider();
134134
var mcpOptions = serviceProvider.GetRequiredService<IOptions<McpServerOptions>>().Value;
135135

136136
// Resources are registered

tests/ModelContextProtocol.Tests/Server/McpServerLoggingLevelTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,29 @@ public McpServerLoggingLevelTests()
1515
}
1616

1717
[Fact]
18-
public async Task CanCreateServerWithLoggingLevelHandler()
18+
public void CanCreateServerWithLoggingLevelHandler()
1919
{
2020
var services = new ServiceCollection();
2121

2222
services.AddMcpServer()
2323
.WithStreamServerTransport(Stream.Null, Stream.Null)
2424
.WithSetLoggingLevelHandler(async (ctx, ct) => new EmptyResult());
2525

26-
await using var provider = services.BuildServiceProvider();
26+
using var provider = services.BuildServiceProvider();
2727

2828
provider.GetRequiredService<McpServer>();
2929
}
3030

3131
[Fact]
32-
public async Task AddingLoggingLevelHandlerSetsLoggingCapability()
32+
public void AddingLoggingLevelHandlerSetsLoggingCapability()
3333
{
3434
var services = new ServiceCollection();
3535

3636
services.AddMcpServer()
3737
.WithStreamServerTransport(Stream.Null, Stream.Null)
3838
.WithSetLoggingLevelHandler(async (ctx, ct) => new EmptyResult());
3939

40-
await using var provider = services.BuildServiceProvider();
40+
using var provider = services.BuildServiceProvider();
4141

4242
var server = provider.GetRequiredService<McpServer>();
4343

@@ -46,12 +46,12 @@ public async Task AddingLoggingLevelHandlerSetsLoggingCapability()
4646
}
4747

4848
[Fact]
49-
public async Task ServerWithoutCallingLoggingLevelHandlerDoesNotSetLoggingCapability()
49+
public void ServerWithoutCallingLoggingLevelHandlerDoesNotSetLoggingCapability()
5050
{
5151
var services = new ServiceCollection();
5252
services.AddMcpServer()
5353
.WithStreamServerTransport(Stream.Null, Stream.Null);
54-
await using var provider = services.BuildServiceProvider();
54+
using var provider = services.BuildServiceProvider();
5555
var server = provider.GetRequiredService<McpServer>();
5656
Assert.Null(server.ServerOptions.Capabilities?.Logging);
5757
}

tests/ModelContextProtocol.Tests/Server/McpServerResourceTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public McpServerResourceTests()
2929
}
3030

3131
[Fact]
32-
public async Task CanCreateServerWithResource()
32+
public void CanCreateServerWithResource()
3333
{
3434
var services = new ServiceCollection();
3535

@@ -58,14 +58,14 @@ public async Task CanCreateServerWithResource()
5858
};
5959
});
6060

61-
await using var provider = services.BuildServiceProvider();
61+
using var provider = services.BuildServiceProvider();
6262

6363
provider.GetRequiredService<McpServer>();
6464
}
6565

6666

6767
[Fact]
68-
public async Task CanCreateServerWithResourceTemplates()
68+
public void CanCreateServerWithResourceTemplates()
6969
{
7070
var services = new ServiceCollection();
7171

@@ -94,13 +94,13 @@ public async Task CanCreateServerWithResourceTemplates()
9494
};
9595
});
9696

97-
await using var provider = services.BuildServiceProvider();
97+
using var provider = services.BuildServiceProvider();
9898

9999
provider.GetRequiredService<McpServer>();
100100
}
101101

102102
[Fact]
103-
public async Task CreatingReadHandlerWithNoListHandlerSucceeds()
103+
public void CreatingReadHandlerWithNoListHandlerSucceeds()
104104
{
105105
var services = new ServiceCollection();
106106
services.AddMcpServer()
@@ -117,7 +117,7 @@ public async Task CreatingReadHandlerWithNoListHandlerSucceeds()
117117
}]
118118
};
119119
});
120-
await using var sp = services.BuildServiceProvider();
120+
using var sp = services.BuildServiceProvider();
121121

122122
sp.GetRequiredService<McpServer>();
123123
}

0 commit comments

Comments
 (0)