X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/18c57b27dd71ee7839c6a90368c845886a87d638..da9d640d914fb561db6cac31908505e8198c191b:/src/simix/smx_synchro.c diff --git a/src/simix/smx_synchro.c b/src/simix/smx_synchro.c index e85bfe3a4c..689576cc1b 100644 --- a/src/simix/smx_synchro.c +++ b/src/simix/smx_synchro.c @@ -96,21 +96,12 @@ static void SIMIX_synchro_finish(smx_action_t action) switch (action->state) { case SIMIX_SRC_TIMEOUT: - TRY { - THROWF(timeout_error, 0, "Synchro's wait timeout"); - } - CATCH(simcall->issuer->running_ctx->exception) { - simcall->issuer->doexception = 1; - } + SMX_EXCEPTION(simcall->issuer, timeout_error, 0, "Synchro's wait timeout"); break; case SIMIX_FAILED: - TRY { - THROWF(host_error, 0, "Host failed"); - } - CATCH(simcall->issuer->running_ctx->exception) { - simcall->issuer->doexception = 1; - } + simcall->issuer->context->iwannadie = 1; +// SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); break; default: @@ -119,6 +110,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(); @@ -184,8 +176,8 @@ int SIMIX_mutex_trylock(smx_mutex_t mutex, smx_process_t issuer) { XBT_IN("(%p, %p)",mutex,issuer); if (mutex->locked){ - XBT_OUT(); - return 0; + XBT_OUT(); + return 0; } mutex->locked = 1; @@ -210,8 +202,8 @@ void SIMIX_mutex_unlock(smx_mutex_t mutex, smx_process_t issuer) /* If the mutex is not owned by the issuer do nothing */ if (issuer != mutex->owner){ - XBT_OUT(); - return; + XBT_OUT(); + return; } if (xbt_swag_size(mutex->sleeping) > 0) { @@ -402,7 +394,7 @@ void SIMIX_cond_destroy(smx_cond_t cond) /** @brief Initialize a semaphore */ smx_sem_t SIMIX_sem_init(unsigned int value) { - XBT_IN("(%d)",value); + XBT_IN("(%u)",value); s_smx_process_t p; smx_sem_t sem = xbt_new0(s_smx_sem_t, 1);