[corlib] Improve CancellationTokenSource test
authorMarek Safar <marek.safar@gmail.com>
Sat, 16 Jan 2016 06:59:33 +0000 (07:59 +0100)
committerMarek Safar <marek.safar@gmail.com>
Sat, 16 Jan 2016 06:59:33 +0000 (07:59 +0100)
mcs/class/corlib/Test/System.Threading/CancellationTokenSourceTest.cs

index 7708e84a39d1be8755091be53ecea8fd79861b3d..efd4683fd9a54ae28bb895574ee01a97adf9b0d3 100644 (file)
@@ -65,9 +65,11 @@ namespace MonoTests.System.Threading
                {
                        int called = 0;
                        var cts = new CancellationTokenSource ();
-                       cts.Token.Register (() => called++);
+                       var mre = new ManualResetEvent(false);
+                       cts.Token.Register (() => { called++; mre.Set (); });
                        cts.CancelAfter (20);
-                       Thread.Sleep (50);
+
+                       Assert.IsTrue(mre.WaitOne (1000), "Should be cancelled in ~20ms");
                        Assert.AreEqual (1, called, "#1");
                }