(* Copyright (C) 1990, Digital Equipment Corporation. *) (* All rights reserved. *) (* See the file COPYRIGHT for a full description. *) (* Last modified on Mon Jun 10 23:33:21 1991 by kalsow *) (* modified on Fri Apr 27 04:13:12 1990 by muller *) MODULE Main; IMPORT Thread, Time; FROM Test IMPORT msg, done; PROCEDURE Task1 (<*UNUSED*> self: Thread.Closure): REFANY RAISES {} = BEGIN FOR i := 1 TO 250000 DO msg ("1"); Time.Pause (200000); END; RETURN NIL; END Task1; PROCEDURE Task2 (<*UNUSED*> self: Thread.Closure): REFANY RAISES {} = BEGIN FOR i := 1 TO 100000 DO msg ("2"); Time.Pause (500000); END; RETURN NIL; END Task2; VAR t1, t2: Thread.T; BEGIN (* this test takes a very long time and doesn't work; do not run it. t1 := Thread.Fork (NEW (Thread.Closure, apply := Task1)); t2 := Thread.Fork (NEW (Thread.Closure, apply := Task2)); EVAL Thread.Join (t1); EVAL Thread.Join (t2); *) EVAL t1; EVAL t2; EVAL Task1; EVAL Task2; done (); END Main.