From: Arnaud Giersch Date: Fri, 27 Apr 2012 10:03:57 +0000 (+0200) Subject: Reinitialize waiting_action at proper place. X-Git-Tag: v3_7~50 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/1128245fc5ccac68ce1f696aab780e15ff9f735a?hp=027274ae8707c374384dbef37ae24a1c80b4fd10 Reinitialize waiting_action at proper place. --- diff --git a/src/simix/smx_synchro.c b/src/simix/smx_synchro.c index c9af7b95a8..2e71eba017 100644 --- a/src/simix/smx_synchro.c +++ b/src/simix/smx_synchro.c @@ -109,6 +109,7 @@ static void SIMIX_synchro_finish(smx_action_t action) } SIMIX_synchro_stop_waiting(simcall->issuer, simcall); + simcall->issuer->waiting_action = NULL; SIMIX_synchro_destroy(action); SIMIX_simcall_answer(simcall); XBT_OUT(); diff --git a/src/simix/smx_user.c b/src/simix/smx_user.c index c0198ab3ed..8c08f25690 100644 --- a/src/simix/smx_user.c +++ b/src/simix/smx_user.c @@ -1079,8 +1079,6 @@ void simcall_cond_wait_timeout(smx_cond_t cond, smx_mutex_t mutex, double timeout) { - xbt_ex_t e; - xbt_assert(isfinite(timeout), "timeout is not finite!"); smx_simcall_t simcall = SIMIX_simcall_mine(); @@ -1090,20 +1088,7 @@ void simcall_cond_wait_timeout(smx_cond_t cond, simcall->cond_wait_timeout.mutex = mutex; simcall->cond_wait_timeout.timeout = timeout; - TRY { - SIMIX_simcall_push(simcall->issuer); - } - CATCH(e) { - switch (e.category) { - case timeout_error: - simcall->issuer->waiting_action = NULL; // FIXME: should clean ? - break; - default: - break; - } - RETHROW; - xbt_ex_free(e); - } + SIMIX_simcall_push(simcall->issuer); } void simcall_cond_broadcast(smx_cond_t cond)