Lazily nit mono_class_setup_supertypes correctly.
[mono-project.git] / mcs / tests / test-async-04.cs
blobb3c21f9a5d8d1c50f00cac474a6c648be731b936
1 // Compiler options: -langversion:future
3 using System;
4 using System.Threading.Tasks;
5 using System.Threading;
7 class C
9 ManualResetEvent mre = new ManualResetEvent (false);
10 ManualResetEvent mre_task = new ManualResetEvent (false);
12 public async Task<int> TestTaskGeneric ()
14 await Task.Factory.StartNew (() => {
15 mre_task.Set ();
16 mre.WaitOne (3000);
17 return 5;
18 });
20 return 1;
23 public static int Main ()
25 var c = new C ();
27 var t2 = c.TestTaskGeneric ();
28 if (t2.Status != TaskStatus.WaitingForActivation)
29 return 1;
31 c.mre_task.WaitOne (3000);
32 c.mre.Set ();
34 if (!Task.WaitAll (new[] { t2 }, 3000))
35 return 2;
37 if (t2.Result != 1)
38 return 3;
40 if (t2.Status != TaskStatus.RanToCompletion)
41 return 4;
43 return 0;