X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/df12bbc75c274351f3b3a628740e0b3270f08e18..d947ff7466b473eeec602007934f8336a9b17f3c:/src/msg/msg_vm.c diff --git a/src/msg/msg_vm.c b/src/msg/msg_vm.c index 4b9e0ad518..4e061966b4 100644 --- a/src/msg/msg_vm.c +++ b/src/msg/msg_vm.c @@ -157,7 +157,29 @@ void MSG_vm_shutdown(msg_vm_t vm) MSG_process_kill(process); } } +/** + * \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); + + 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(new_processes, cpt, process) { + MSG_vm_bind(vm,process); + } + + xbt_dynar_free(&new_processes); +} /** @brief Destroy a msg_vm_t. * @ingroup msg_VMs */