Skip to content

Commit 6f2ee9d

Browse files
committed
Fix race condition in BinaryConnectionTests.
1 parent 54b263d commit 6f2ee9d

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

tests/MongoDB.Driver.Core.Tests/Core/Connections/BinaryConnectionTests.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -458,9 +458,7 @@ public void ReceiveMessage_should_throw_network_exception_to_all_awaiters(
458458
}
459459
else
460460
{
461-
var task1IsRunning = 0;
462-
task1 = Task.Run(() => { Interlocked.Exchange(ref task1IsRunning, 1); return _subject.ReceiveMessage(1, encoderSelector, _messageEncoderSettings, CancellationToken.None); });
463-
SpinWait.SpinUntil(() => Interlocked.CompareExchange(ref task1IsRunning, 0, 0) == 1, TimeSpan.FromSeconds(5)).Should().BeTrue();
461+
task1 = Task.Run(() => _subject.ReceiveMessage(1, encoderSelector, _messageEncoderSettings, CancellationToken.None));
464462
}
465463

466464
Task task2;
@@ -470,11 +468,11 @@ public void ReceiveMessage_should_throw_network_exception_to_all_awaiters(
470468
}
471469
else
472470
{
473-
var task2IsRunning = 0;
474-
task2 = Task.Run(() => { Interlocked.Exchange(ref task2IsRunning, 1); return _subject.ReceiveMessage(2, encoderSelector, _messageEncoderSettings, CancellationToken.None); });
475-
SpinWait.SpinUntil(() => Interlocked.CompareExchange(ref task2IsRunning, 0, 0) == 1, TimeSpan.FromSeconds(5)).Should().BeTrue();
471+
task2 = Task.Run(() => _subject.ReceiveMessage(2, encoderSelector, _messageEncoderSettings, CancellationToken.None));
476472
}
477473

474+
SpinWait.SpinUntil(() => _capturedEvents.Count >= 2, TimeSpan.FromSeconds(5)).Should().BeTrue();
475+
478476
readTcs.SetException(new SocketException());
479477

480478
Func<Task> act1 = () => task1;

0 commit comments

Comments
 (0)