Add tasks for all the new languages

This commit is contained in:
Tina Müller 2016-12-05 23:44:36 +01:00
parent 9dc3c2bb62
commit bba7bfd280
13208 changed files with 134745 additions and 0 deletions

View file

@ -0,0 +1,23 @@
: task(n, jobs, myChannel)
while(true) [
System.Out "TASK " << n << " : Beginning my work..." << cr
System sleep(1000 rand)
System.Out "TASK " << n << " : Finish, sendind done and waiting for others..." << cr
jobs send($jobDone) drop
myChannel receive drop
] ;
: checkPoint(n, jobs, channels)
while(true) [
#[ jobs receive drop ] times(n)
"CHECKPOINT : All jobs done, sending done to all tasks" println
channels apply(#[ send($allDone) drop ])
] ;
: testCheckPoint(n)
| jobs channels i |
ListBuffer init(n, #[ Channel new ]) dup freeze ->channels
Channel new ->jobs
#[ checkPoint(n, jobs, channels) ] &
n loop: i [ #[ task(i, jobs, channels at(i)) ] & ] ;