|
|
@@ -55,8 +55,10 @@ namespace MonoTests.System.Threading
|
|
|
{
|
|
|
int called = 0;
|
|
|
var cts = new CancellationTokenSource (TimeSpan.FromMilliseconds (20));
|
|
|
- cts.Token.Register (() => called++);
|
|
|
- Thread.Sleep (50);
|
|
|
+ var mre = new ManualResetEvent (false);
|
|
|
+ cts.Token.Register (() => { called++; mre.Set (); });
|
|
|
+
|
|
|
+ Assert.IsTrue (mre.WaitOne (1000), "Not called in 1000ms");
|
|
|
Assert.AreEqual (1, called, "#1");
|
|
|
}
|
|
|
|
|
|
@@ -89,10 +91,12 @@ 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 (50);
|
|
|
cts.Dispose ();
|
|
|
- Thread.Sleep (100);
|
|
|
+
|
|
|
+ Assert.IsFalse (mre.WaitOne (100), "Shouldn't have been called");
|
|
|
Assert.AreEqual (0, called, "#1");
|
|
|
}
|
|
|
|