worker()
{
RESULT r;
TASK t;
while (1) {
transaction(ts);
ts.in("task", ?t);
r = compute_task(t);
ts.out("result", r);
commit(ts);
}
}
(b)
master()
{
int i;
RESULT r;
TASK t;
for (i=0; create_task(&t);i++)
ts.out("task",t);
for (;i;--i){
ts.in("result",?r);
update_result(r);
}
output_result(r);
}