[Process] Fix NonChildProcessWaitForExit Exited callback (#4409)
[mono.git] / mcs / class / System / Test / System.Diagnostics / ProcessTest.cs
index 45d578d3f58c12040caef6390fa8eb140ca7e08a..cb3827785af4dab4ced082075e03b608d27e1861 100644 (file)
@@ -1139,12 +1139,15 @@ namespace MonoTests.System.Diagnostics
                                Assert.Ignore ("accessing parent pid, only available on unix");
 
                        using (Process process = Process.GetProcessById (getppid ()))
+                       using (ManualResetEvent mre = new ManualResetEvent (false))
                        {
                                Assert.IsFalse (process.WaitForExit (10), "#1");
                                Assert.IsFalse (process.HasExited, "#2");
                                Assert.Throws<InvalidOperationException>(delegate { int exitCode = process.ExitCode; }, "#3");
 
-                               process.Exited += (s, e) => Assert.Fail ("#4");
+                               process.Exited += (s, e) => mre.Set ();
+                               process.EnableRaisingEvents = true;
+                               Assert.IsFalse (mre.WaitOne (100), "#4");
 
                                Assert.IsFalse (process.WaitForExit (10), "#5");
                                Assert.IsFalse (process.HasExited, "#6");