UnixSignal b = new UnixSignal (Signum.SIGINT);
Stdlib.raise (Signum.SIGINT);
+ SleepUntilSignaled (a);
Assert.AreEqual (a.Count, 1);
Assert.AreEqual (b.Count, 1);
b.Reset ();
Stdlib.raise (Signum.SIGINT);
+ SleepUntilSignaled (b);
Assert.AreEqual (b.Count, 1);
b.Close ();
}
+ static void SleepUntilSignaled (UnixSignal s)
+ {
+ for (int i = 0; i < 10; ++i) {
+ if (s.Count > 0)
+ break;
+ Thread.Sleep (100);
+ }
+ }
+
[Test]
public void TestDispose2 ()
{
UnixSignal b = new UnixSignal (Signum.SIGINT);
Stdlib.raise (Signum.SIGINT);
+ SleepUntilSignaled (a);
Assert.AreEqual (a.Count, 1);
Assert.AreEqual (b.Count, 1);
a.Reset ();
Stdlib.raise (Signum.SIGINT);
+ SleepUntilSignaled (a);
Assert.AreEqual (a.Count, 1);
a.Close ();