Skip to content

Commit 505f0a4

Browse files
committed
Dispose the cancellation tokens in WireMockServerLifecycleHook
1 parent c1a05d9 commit 505f0a4

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

src/WireMock.Net.Aspire/WireMockServerLifecycleHook.cs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ internal class WireMockServerLifecycleHook(ILoggerFactory loggerFactory) : IDist
1010
{
1111
private readonly CancellationTokenSource _shutdownCts = new();
1212

13+
private CancellationTokenSource? _linkedCts;
1314
private Task? _mappingTask;
1415

15-
public async Task AfterEndpointsAllocatedAsync(DistributedApplicationModel appModel, CancellationToken cancellationToken = default)
16+
public Task AfterEndpointsAllocatedAsync(DistributedApplicationModel appModel, CancellationToken cancellationToken = default)
1617
{
17-
var cts = CancellationTokenSource.CreateLinkedTokenSource(_shutdownCts.Token, cancellationToken);
18+
_linkedCts = CancellationTokenSource.CreateLinkedTokenSource(_shutdownCts.Token, cancellationToken);
1819

1920
_mappingTask = Task.Run(async () =>
2021
{
@@ -29,19 +30,27 @@ public async Task AfterEndpointsAllocatedAsync(DistributedApplicationModel appMo
2930
var endpoint = wireMockServerResource.GetEndpoint();
3031
System.Diagnostics.Debug.Assert(endpoint.IsAllocated);
3132

32-
await wireMockServerResource.WaitForHealthAsync(cts.Token);
33+
await wireMockServerResource.WaitForHealthAsync(_linkedCts.Token);
3334

34-
await wireMockServerResource.CallApiMappingBuilderActionAsync(cts.Token);
35+
await wireMockServerResource.CallApiMappingBuilderActionAsync(_linkedCts.Token);
3536

36-
wireMockServerResource.StartWatchingStaticMappings(cts.Token);
37+
wireMockServerResource.StartWatchingStaticMappings(_linkedCts.Token);
3738
}
38-
}, cts.Token);
39+
}, _linkedCts.Token);
40+
41+
return Task.CompletedTask;
3942
}
4043

4144
public async ValueTask DisposeAsync()
4245
{
4346
await _shutdownCts.CancelAsync();
47+
48+
_linkedCts?.Dispose();
49+
_shutdownCts.Dispose();
50+
4451
if (_mappingTask is not null)
52+
{
4553
await _mappingTask;
54+
}
4655
}
4756
}

0 commit comments

Comments
 (0)