From: Arnaud Giersch Date: Wed, 8 Feb 2012 22:58:25 +0000 (+0100) Subject: Parmap: protect against wraparound for round. X-Git-Tag: exp_20120216~33 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/b7d7072994877985a12c99591ad5c34dac347a8f?hp=7e6a623d771b9ef0f6e3f893ba9213154d07bc54 Parmap: protect against wraparound for round. --- diff --git a/src/xbt/parmap.c b/src/xbt/parmap.c index 103fe7fddf..8219493515 100644 --- a/src/xbt/parmap.c +++ b/src/xbt/parmap.c @@ -347,7 +347,7 @@ static void xbt_parmap_posix_worker_wait(xbt_parmap_t parmap, unsigned round) { xbt_os_mutex_acquire(parmap->ready_mutex); /* wait for more work */ - if (parmap->work < round) { + if (parmap->work != round) { xbt_os_cond_wait(parmap->ready_cond, parmap->ready_mutex); } xbt_os_mutex_release(parmap->ready_mutex); @@ -416,7 +416,7 @@ static void xbt_parmap_futex_worker_wait(xbt_parmap_t parmap, unsigned round) { unsigned work = parmap->work; /* wait for more work */ - if (work < round) + if (work != round) futex_wait(&parmap->work, work); } #endif @@ -472,7 +472,7 @@ static void xbt_parmap_busy_master_signal(xbt_parmap_t parmap) static void xbt_parmap_busy_worker_wait(xbt_parmap_t parmap, unsigned round) { /* wait for more work */ - while (parmap->work < round) { + while (parmap->work != round) { xbt_os_thread_yield(); } }