(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.

Back to Article