From: agiersch Date: Tue, 16 Nov 2010 09:25:25 +0000 (+0000) Subject: Simplify synchronization in parallel_log_crashtest. X-Git-Tag: v3_5~269 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/cb8cc13190cca5d4ef391203c7a778edceac246d Simplify synchronization in parallel_log_crashtest. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8558 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/teshsuite/xbt/parallel_log_crashtest.c b/teshsuite/xbt/parallel_log_crashtest.c index 7fb2715531..4a87e0f55a 100644 --- a/teshsuite/xbt/parallel_log_crashtest.c +++ b/teshsuite/xbt/parallel_log_crashtest.c @@ -18,15 +18,6 @@ int *id; /* to pass a pointer to the threads without race int more_info = 0; /* SET IT TO TRUE TO GET MORE INFO */ -/* - * Some additionnal code to let the father wait the childs - */ -xbt_mutex_t mut_end; -xbt_cond_t cond_end; -int running_threads; - -xbt_mutex_t dead_end; - /* Code ran by each thread */ static void crasher_thread(void *arg) { @@ -40,11 +31,6 @@ static void crasher_thread(void *arg) else INFO0("XXX (XX|XX|XX|XX|XX|XX|XX|XX|XX)"); } - - xbt_mutex_acquire(mut_end); - running_threads--; - xbt_cond_signal(cond_end); - xbt_mutex_release(mut_end); } int crasher(int argc, char *argv[]); @@ -62,25 +48,20 @@ int crasher(int argc, char *argv[]) for (i = 0; i < crasher_amount; i++) id[i] = i; - /* setup the ending mecanism */ - running_threads = crasher_amount; - cond_end = xbt_cond_init(); - mut_end = xbt_mutex_init(); - /* spawn threads */ for (i = 0; i < crasher_amount; i++) { char *name = bprintf("thread %d", i); crashers[i] = - xbt_thread_create(name, &crasher_thread, &id[i], - 0 /*not joinable */ ); + xbt_thread_create(name, &crasher_thread, &id[i], 1 /* joinable */ ); free(name); } /* wait for them */ - xbt_mutex_acquire(mut_end); - while (running_threads) - xbt_cond_wait(cond_end, mut_end); - xbt_mutex_release(mut_end); + for (i = 0; i < crasher_amount; i++) + xbt_thread_join(crashers[i]); + + xbt_free(crashers); + xbt_free(id); gras_exit(); return 0;