[mcs] More reliable tests
[mono-project.git] / mcs / tests / test-iter-23.cs
blob3dd524c4960c0d054ec1f4926142cfc454ee98c6
1 using System;
2 using System.Collections;
3 using System.Threading;
5 class X
7 static ManualResetEvent dispose = new ManualResetEvent (false);
8 static ManualResetEvent wait = new ManualResetEvent (false);
10 static IEnumerable GetIt2 ()
12 yield return Delay ();
13 yield return 2;
16 static int Delay ()
18 dispose.Set ();
19 wait.WaitOne ();
20 return 1;
23 public static int Main ()
25 var e = GetIt2 ().GetEnumerator ();
26 ThreadPool.QueueUserWorkItem (l => {
27 dispose.WaitOne ();
28 ((IDisposable) e).Dispose ();
29 wait.Set ();
30 });
32 if (!e.MoveNext ())
33 return 1;
35 if (e.MoveNext ())
36 return 2;
38 Console.WriteLine (e.Current);
39 if ((int) e.Current != 1)
40 return 3;
42 return 0;