Task

Using either native language concurrency syntax or freely available libraries, write a program to display the strings "Enjoy" "Rosetta" "Code", one string per line, in random order.

Concurrency syntax must use threads, tasks, co-routines, or whatever concurrency is called in your language.




' FB 1.05.0 Win64
' Compiled with -mt switch (to use threadsafe runtiume)
' The 'ThreadCall' functionality in FB is based internally on LibFFi (see [https://github.com/libffi/libffi/blob/master/LICENSE] for license)
 
Sub thread1()
  Print "Enjoy"
End Sub
 
Sub thread2()
  Print "Rosetta"
End Sub
 
Sub thread3()
  Print "Code"
End Sub
 
Print "Press any key to print next batch of 3 strings or ESC to quit"
Print
 
Do
  Dim t1 As Any Ptr = ThreadCall thread1
  Dim t2 As Any Ptr = ThreadCall thread2
  Dim t3 As Any Ptr = ThreadCall thread3
  ThreadWait t1
  ThreadWait t2
  ThreadWait t3
  Print
  Sleep
Loop While Inkey <> Chr(27)