X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f9c6777834b0f2a277966c3e6725600d52619f43..0386b99694ba4c3ab18048e7a57d46bc34201bfb:/src/xbt/parmap.c diff --git a/src/xbt/parmap.c b/src/xbt/parmap.c index cdb6e916b6..1b0ab3d793 100644 --- a/src/xbt/parmap.c +++ b/src/xbt/parmap.c @@ -272,14 +272,14 @@ static void xbt_parmap_set_mode(xbt_parmap_t parmap, e_xbt_parmap_mode_t mode) */ void xbt_parmap_apply(xbt_parmap_t parmap, void_f_pvoid_t fun, xbt_dynar_t data) { - /* Assign resources to worker threads */ + /* Assign resources to worker threads (we are maestro here)*/ parmap->fun = fun; parmap->data = data; parmap->index = 0; - parmap->master_signal_f(parmap); - xbt_parmap_work(parmap); - parmap->master_wait_f(parmap); - XBT_DEBUG("Job done"); + parmap->master_signal_f(parmap); // maestro runs futex_wait to wake all the minions (the working threads) + xbt_parmap_work(parmap); // maestro works with its minions + parmap->master_wait_f(parmap); // When there is no more work to do, then maestro waits for the last minion to stop + XBT_DEBUG("Job done"); // ... and proceeds } /**