(a)
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); }
Example 1: Master/worker paradigm: (a) worker; (b) master.