X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/356d964ef596cb5f8905b6a6f54a1053d8ad86b6..23f5bf52cc58cf837840f231cf638e9fcd45097b:/src/simix/smx_process.c diff --git a/src/simix/smx_process.c b/src/simix/smx_process.c index d6aa7da289..ad38a717cc 100644 --- a/src/simix/smx_process.c +++ b/src/simix/smx_process.c @@ -318,7 +318,7 @@ void SIMIX_process_kill(smx_process_t process, smx_process_t issuer) { case SIMIX_ACTION_COMMUNICATE: xbt_fifo_remove(process->comms, process->waiting_action); - SIMIX_comm_destroy(process->waiting_action); + SIMIX_comm_cancel(process->waiting_action); break; case SIMIX_ACTION_SLEEP: @@ -333,6 +333,14 @@ void SIMIX_process_kill(smx_process_t process, smx_process_t issuer) { 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; + /* **************************************/ + } } if(!xbt_dynar_member(simix_global->process_to_run, &(process)) && process != issuer) { @@ -571,7 +579,7 @@ xbt_dict_t SIMIX_process_get_properties(smx_process_t process) void SIMIX_pre_process_sleep(smx_simcall_t simcall) { - if (MC_IS_ENABLED) { + if (MC_is_active()) { MC_process_clock_add(simcall->issuer, simcall->process_sleep.duration); simcall->process_sleep.result = SIMIX_DONE; SIMIX_simcall_answer(simcall); @@ -701,6 +709,13 @@ void SIMIX_process_yield(smx_process_t self) self->doexception = 0; SMX_THROW(); } + + /* Ignore some local variables from xbt/ex.c for stacks comparison */ + if(MC_is_active()){ + MC_ignore_stack("ctx", "SIMIX_process_yield"); + MC_ignore_stack("_throw_ctx", "SIMIX_process_yield"); + MC_ignore_stack("_log_ev", "SIMIX_process_yield"); + } } /* callback: context fetching */ @@ -713,7 +728,7 @@ xbt_running_ctx_t *SIMIX_process_get_running_context(void) void SIMIX_process_exception_terminate(xbt_ex_t * e) { xbt_ex_display(e); - abort(); + xbt_abort(); } smx_context_t SIMIX_process_get_context(smx_process_t p) { @@ -786,7 +801,7 @@ void SIMIX_process_auto_restart_set(smx_process_t process, int auto_restart) { * \brief Restart a process. * Restart a process, starting it again from the beginning. */ -void SIMIX_process_restart(smx_process_t process, smx_process_t issuer) { +smx_process_t SIMIX_process_restart(smx_process_t process, smx_process_t issuer) { XBT_DEBUG("Restarting process %s on %s", process->name, process->smx_host->name); //retrieve the arguments of the old process //FIXME: Factorise this with SIMIX_host_add_auto_restart_process ? @@ -833,5 +848,5 @@ void SIMIX_process_restart(smx_process_t process, smx_process_t issuer) { arg.auto_restart); } - + return new_process; }