From: Arnaud Giersch Date: Tue, 5 Feb 2013 22:07:22 +0000 (+0100) Subject: Correctly restart all processes on VM reboot. X-Git-Tag: v3_9_90~510^2~27 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/56e7200c5f51d92b14a7b3635e23fb922e27ed81 Correctly restart all processes on VM reboot. vm->processes is changed by MSG_process_restart. --- diff --git a/src/msg/msg_vm.c b/src/msg/msg_vm.c index 473d8e2c5a..175317b974 100644 --- a/src/msg/msg_vm.c +++ b/src/msg/msg_vm.c @@ -181,29 +181,29 @@ void MSG_vm_shutdown(msg_vm_t vm) #endif } + /** * \ingroup msg_VMs * \brief Reboot the VM, restarting all the processes in it. */ void MSG_vm_reboot(msg_vm_t vm) { - xbt_dynar_t new_processes = xbt_dynar_new(sizeof(msg_process_t),NULL); - + xbt_dynar_t process_list = xbt_dynar_new(sizeof(msg_process_t), NULL); msg_process_t process; unsigned int cpt; - xbt_dynar_foreach(vm->processes,cpt,process) { - msg_process_t new_process = MSG_process_restart(process); - xbt_dynar_push_as(new_processes,msg_process_t,new_process); - + xbt_dynar_foreach(vm->processes, cpt, process) { + xbt_dynar_push_as(process_list, msg_process_t, process); } - xbt_dynar_foreach(new_processes, cpt, process) { - MSG_vm_bind(vm,process); + xbt_dynar_foreach(process_list, cpt, process) { + msg_process_t new_process = MSG_process_restart(process); + MSG_vm_bind(vm, new_process); } - xbt_dynar_free(&new_processes); + xbt_dynar_free(&process_list); } + /** @brief Destroy a msg_vm_t. * @ingroup msg_VMs */