Skip to content

Commit 0a5e93b

Browse files
authored
mitigation for quic tests hangs (#55985)
1 parent 6b09e32 commit 0a5e93b

File tree

1 file changed

+6
-2
lines changed
  • src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic

1 file changed

+6
-2
lines changed

src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/MsQuicStream.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,9 @@ internal override int Read(Span<byte> buffer)
651651
byte[] rentedBuffer = ArrayPool<byte>.Shared.Rent(buffer.Length);
652652
try
653653
{
654-
int readLength = ReadAsync(new Memory<byte>(rentedBuffer, 0, buffer.Length)).AsTask().GetAwaiter().GetResult();
654+
Task<int> t = ReadAsync(new Memory<byte>(rentedBuffer, 0, buffer.Length)).AsTask();
655+
((IAsyncResult)t).AsyncWaitHandle.WaitOne();
656+
int readLength = t.GetAwaiter().GetResult();
655657
rentedBuffer.AsSpan(0, readLength).CopyTo(buffer);
656658
return readLength;
657659
}
@@ -666,7 +668,9 @@ internal override void Write(ReadOnlySpan<byte> buffer)
666668
ThrowIfDisposed();
667669

668670
// TODO: optimize this.
669-
WriteAsync(buffer.ToArray()).AsTask().GetAwaiter().GetResult();
671+
Task t = WriteAsync(buffer.ToArray()).AsTask();
672+
((IAsyncResult)t).AsyncWaitHandle.WaitOne();
673+
t.GetAwaiter().GetResult();
670674
}
671675

672676
// MsQuic doesn't support explicit flushing

0 commit comments

Comments
 (0)