(notonline)--> constant lock = init_cs() include timedate.e procedure showtime() puts(1,format_timedate(date()," h:m:s\n")) end procedure procedure echo(string s) sleep(rnd()/10) -- see note enter_cs(lock) puts(1,s) sleep(1) showtime() leave_cs(lock) end procedure procedure main() enter_cs(lock) sequence threads = {create_thread(routine_id("echo"),{"job1"}), create_thread(routine_id("echo"),{"job2"})} puts(1,"main") showtime() sleep(1) puts(1,"free") showtime() leave_cs(lock) wait_thread(threads) puts(1,"done\n") end procedure main()