alms-0.6.0: examples/threads3.alms
(* A bad example with threads. (type error!) *)
#load "libthread"
let rec printer () =
AThread.delay 100000;
putStr "x";
flush ();
printer ()
let startStop () =
let id = AThread.fork printer in
let id = AThread.print id in
λ _ → AThread.kill id
let after delay stop =
AThread.fork (λ _ → AThread.delay delay; stop ());
()
let main () =
let stop = startStop () in
after 2000000 stop;
getLine ();
stop () (* stop used twice! *)
in main ()