Checkpoint synchronization: Difference between revisions

m
Line 1,430:
func: checkPoint(n, jobs, channels)
{
| i ch |
while(true) [
#n loop: i [ jobs receive drop ] times(n)
"CHECKPOINT : All jobs done, sending done to all tasks" println
channels apply(#forEach: ch [ send($done) ch send drop ]
]
}
Line 1,441 ⟶ 1,442:
| jobs channels i |
n seq map(#[ drop Channel new]) ->channels
Channel newSize(n)new ->jobs
 
#[ checkPoint(n, jobs, channels) ] &
n loop: i [ #[ task(i, jobs, channels at(i)) ] & ]
}
}</lang>
 
=={{header|Perl}}==
1,015

edits