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:
}
SIMIX_synchro_stop_waiting(simcall->issuer, simcall);
+ simcall->issuer->waiting_action = NULL;
SIMIX_synchro_destroy(action);
SIMIX_simcall_answer(simcall);
XBT_OUT();
{
XBT_IN("(%p, %p)",mutex,issuer);
if (mutex->locked){
- XBT_OUT();
- return 0;
+ XBT_OUT();
+ return 0;
}
mutex->locked = 1;
/* 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) {
/** @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);