From f55e86025c3e564bc8940954df2370b3bb6ed970 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Tue, 9 Jun 2020 06:25:06 -0400 Subject: [PATCH] Fix TestExited_SynchronizingObject test Fix race condition. --- .../System.Diagnostics.Process/tests/ProcessTests.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs b/src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs index a3be3057e4d467..98e839a1592f4a 100644 --- a/src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs +++ b/src/libraries/System.Diagnostics.Process/tests/ProcessTests.cs @@ -139,7 +139,7 @@ public void TestEnableRaiseEvents(bool? enable) [InlineData(true)] public void TestExited_SynchronizingObject(bool invokeRequired) { - bool exitedInvoked = false; + var mres = new ManualResetEventSlim(); Task beginInvokeTask = null; Process p = CreateProcessLong(); @@ -154,20 +154,20 @@ public void TestExited_SynchronizingObject(bool invokeRequired) } }; p.EnableRaisingEvents = true; - p.Exited += delegate { exitedInvoked = true; }; + p.Exited += delegate { mres.Set(); }; StartSleepKillWait(p); + Assert.True(mres.Wait(WaitInMS)); + if (invokeRequired) { Assert.NotNull(beginInvokeTask); - beginInvokeTask.Wait(); + Assert.True(beginInvokeTask.Wait(WaitInMS)); } else { Assert.Null(beginInvokeTask); } - - Assert.True(exitedInvoked); } [Fact]