X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/373ed09fef634fb125c5039bbc722fbe49e93120..4e44b79c5c7acf75b2793fdd7ca7e604baf5da74:/src/simix/smx_process.c diff --git a/src/simix/smx_process.c b/src/simix/smx_process.c index ff48a3537e..4899f9174d 100644 --- a/src/simix/smx_process.c +++ b/src/simix/smx_process.c @@ -95,7 +95,6 @@ void SIMIX_process_cleanup(smx_process_t process) } } - /*xbt_swag_remove(process, simix_global->process_to_run);*/ xbt_swag_remove(process, simix_global->process_list); xbt_swag_remove(process, SIMIX_host_priv(process->smx_host)->process_list); xbt_swag_insert(process, simix_global->process_to_destroy); @@ -276,6 +275,10 @@ void SIMIX_process_create(smx_process_t *process, (*process)->running_ctx = xbt_new(xbt_running_ctx_t, 1); XBT_RUNNING_CTX_INITIALIZE((*process)->running_ctx); + if(MC_is_active()){ + MC_ignore_heap((*process)->running_ctx, sizeof(*(*process)->running_ctx)); + } + /* Add properties */ (*process)->properties = properties; @@ -344,35 +347,36 @@ void SIMIX_process_kill(smx_process_t process, smx_process_t issuer) { switch (process->waiting_action->type) { - case SIMIX_ACTION_EXECUTE: - case SIMIX_ACTION_PARALLEL_EXECUTE: - SIMIX_host_execution_destroy(process->waiting_action); - break; - - case SIMIX_ACTION_COMMUNICATE: - xbt_fifo_remove(process->comms, process->waiting_action); - SIMIX_comm_cancel(process->waiting_action); - break; - - case SIMIX_ACTION_SLEEP: - SIMIX_process_sleep_destroy(process->waiting_action); - break; - - case SIMIX_ACTION_SYNCHRO: - SIMIX_synchro_stop_waiting(process, &process->simcall); - SIMIX_synchro_destroy(process->waiting_action); - break; - - case SIMIX_ACTION_IO: - SIMIX_io_destroy(process->waiting_action); - break; - - /* **************************************/ - /* TUTORIAL: New API */ - case SIMIX_ACTION_NEW_API: - SIMIX_new_api_destroy(process->waiting_action); - break; - /* **************************************/ + case SIMIX_ACTION_EXECUTE: + case SIMIX_ACTION_PARALLEL_EXECUTE: + SIMIX_host_execution_destroy(process->waiting_action); + break; + + case SIMIX_ACTION_COMMUNICATE: + xbt_fifo_remove(process->comms, process->waiting_action); + SIMIX_comm_cancel(process->waiting_action); + SIMIX_comm_destroy(process->waiting_action); + break; + + case SIMIX_ACTION_SLEEP: + SIMIX_process_sleep_destroy(process->waiting_action); + break; + + case SIMIX_ACTION_SYNCHRO: + SIMIX_synchro_stop_waiting(process, &process->simcall); + SIMIX_synchro_destroy(process->waiting_action); + break; + + case SIMIX_ACTION_IO: + SIMIX_io_destroy(process->waiting_action); + break; + + /* **************************************/ + /* TUTORIAL: New API */ + case SIMIX_ACTION_NEW_API: + SIMIX_new_api_destroy(process->waiting_action); + break; + /* **************************************/ } } @@ -721,6 +725,7 @@ void SIMIX_post_process_sleep(smx_action_t action) case SURF_ACTION_FAILED: simcall->issuer->context->iwannadie = 1; //SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed"); + state = SIMIX_SRC_HOST_FAILURE; break; case SURF_ACTION_DONE: