RosettaCodeData/Task/Events/Phix/events-1.phix
2019-09-12 10:33:56 -07:00

30 lines
620 B
Text

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()