Skip to content

Commit e3925e3

Browse files
authored
Fix Dispose and SendData Race on Http3 Test (#91291)
* Fix Dispose and Send Data Race * Review feedback
1 parent ce3b14d commit e3925e3

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/libraries/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.Http3.cs

+3
Original file line numberDiff line numberDiff line change
@@ -1626,6 +1626,7 @@ public async Task DuplexStreaming_AbortByServer_StreamingCancelled(bool graceful
16261626
public async Task ServerSendsTrailingHeaders_Success()
16271627
{
16281628
using Http3LoopbackServer server = CreateHttp3LoopbackServer();
1629+
SemaphoreSlim clientFinishedSemaphore = new SemaphoreSlim(0);
16291630

16301631
Task serverTask = Task.Run(async () =>
16311632
{
@@ -1636,6 +1637,7 @@ public async Task ServerSendsTrailingHeaders_Success()
16361637
await requestStream.ReadRequestDataAsync();
16371638
await requestStream.SendResponseAsync(isFinal: false);
16381639
await requestStream.SendResponseHeadersAsync(null, new[] { new HttpHeaderData("MyHeader", "MyValue") });
1640+
await clientFinishedSemaphore.WaitAsync(TimeSpan.FromSeconds(20));
16391641
});
16401642

16411643
Task clientTask = Task.Run(async () =>
@@ -1655,6 +1657,7 @@ public async Task ServerSendsTrailingHeaders_Success()
16551657
(string key, IEnumerable<string> value) = Assert.Single(response.TrailingHeaders);
16561658
Assert.Equal("MyHeader", key);
16571659
Assert.Equal("MyValue", Assert.Single(value));
1660+
clientFinishedSemaphore.Release();
16581661
});
16591662

16601663
await new[] { clientTask, serverTask }.WhenAllOrAnyFailed(200_000);

0 commit comments

Comments
 (0)