X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0a4335062238cd526c686b232aaca21e72665d70..b6b60f884ece8c483fd03d33ebe1de5bda0b32b0:/src/simix/smx_process.c diff --git a/src/simix/smx_process.c b/src/simix/smx_process.c index 0e31c2e84c..fa1fc6640e 100644 --- a/src/simix/smx_process.c +++ b/src/simix/smx_process.c @@ -332,8 +332,9 @@ void SIMIX_process_suspend(smx_process_t process) surf_workstation_model->common_public->suspend(dummy->simdata->surf_action); SIMIX_register_action_to_condition(dummy, cond); __SIMIX_cond_wait(cond); - //SIMIX_action_destroy(dummy); - //SIMIX_cond_destroy(cond); + SIMIX_unregister_action_to_condition(dummy, cond); + SIMIX_action_destroy(dummy); + SIMIX_cond_destroy(cond); } return; } @@ -381,6 +382,21 @@ void SIMIX_process_resume(smx_process_t process) } +/** + * \brief Migrates an agent to another location. + * + * This function changes the value of the host on which \a process is running. + */ +void SIMIX_process_change_host(smx_process_t process, char *source, char *dest) +{ + smx_simdata_process_t p_simdata = process->simdata; + smx_host_t h1 = SIMIX_host_get_by_name(source); + smx_host_t h2 = SIMIX_host_get_by_name(dest); + p_simdata->smx_host = h2; + xbt_swag_remove(process, h1->simdata->process_list); + xbt_swag_insert(process, h2->simdata->process_list); +} + /** * \brief Returns true if the process is suspended . *