[interp] Remove unreachable code (#12411)
[mono-project.git] / mono / tests / thread-suspend-selfsuspended.cs
blob107b27cd56cc916d2a32ce0708777afe7d0bc872
2 using System;
3 using System.Threading;
5 class Driver
7 public static void Main ()
9 bool finished = false;
10 AutoResetEvent start_gc = new AutoResetEvent (false);
12 Thread t1 = Thread.CurrentThread;
14 Thread t2 = new Thread (() => {
15 while (!finished) {
16 if (start_gc.WaitOne (0))
17 GC.Collect ();
19 try {
20 t1.Resume ();
21 } catch (ThreadStateException) {
24 Thread.Yield ();
26 });
28 t2.Start ();
30 Thread.Sleep (10);
32 for (int i = 0; i < 50 * 40 * 5; ++i) {
33 start_gc.Set ();
34 Thread.CurrentThread.Suspend ();
35 if ((i + 1) % (50) == 0)
36 Console.Write (".");
37 if ((i + 1) % (50 * 40) == 0)
38 Console.WriteLine ();
41 finished = true;
43 t2.Join ();