From eed8e2fb3154298be31ace4f9083f47d837a3f97 Mon Sep 17 00:00:00 2001 From: "Ilya.Usov" Date: Wed, 18 Mar 2026 21:21:33 +0100 Subject: [PATCH] Fix flaky TestTerminatesAfter by replacing Thread.Sleep with SpinWait Replace fixed-sleep + assert pattern with SpinWait.SpinUntil so the test succeeds as soon as the condition becomes true rather than relying on a 200ms window that can be exceeded on loaded machines or CI. Co-Authored-By: Claude Sonnet 4.6 --- rd-net/Test.Lifetimes/Lifetimes/LifetimeTest.cs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/rd-net/Test.Lifetimes/Lifetimes/LifetimeTest.cs b/rd-net/Test.Lifetimes/Lifetimes/LifetimeTest.cs index 35d497a37..14b3dbb2b 100644 --- a/rd-net/Test.Lifetimes/Lifetimes/LifetimeTest.cs +++ b/rd-net/Test.Lifetimes/Lifetimes/LifetimeTest.cs @@ -1306,16 +1306,14 @@ public void TestTerminatesAfter() { var lf = TestLifetime.CreateTerminatedAfter(TimeSpan.FromMilliseconds(100)); Assert.True(lf.IsAlive); - Thread.Sleep(200); - Assert.True(lf.IsNotAlive); - + Assert.True(SpinWait.SpinUntil(() => lf.IsNotAlive, TimeSpan.FromSeconds(5))); + lf = TestLifetime.CreateTerminatedAfter(TimeSpan.FromMilliseconds(100)); Assert.True(lf.IsAlive); LifetimeDefinition.Terminate(); Assert.True(lf.IsNotAlive); - - Thread.Sleep(200); - Assert.True(lf.IsNotAlive); + + Assert.True(SpinWait.SpinUntil(() => lf.IsNotAlive, TimeSpan.FromSeconds(5))); }