X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/53cde8dfb94134348e908b3c2845200ffc582dc7..da9d640d914fb561db6cac31908505e8198c191b:/src/simix/smx_synchro.c diff --git a/src/simix/smx_synchro.c b/src/simix/smx_synchro.c index c9af7b95a8..689576cc1b 100644 --- a/src/simix/smx_synchro.c +++ b/src/simix/smx_synchro.c @@ -100,7 +100,8 @@ static void SIMIX_synchro_finish(smx_action_t action) break; case SIMIX_FAILED: - SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); + simcall->issuer->context->iwannadie = 1; +// SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); break; default: @@ -109,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(); @@ -174,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; @@ -200,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) {