Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Correctly restart all processes on VM reboot.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Tue, 5 Feb 2013 22:07:22 +0000 (23:07 +0100)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Wed, 6 Feb 2013 10:00:52 +0000 (11:00 +0100)
vm->processes is changed by MSG_process_restart.

src/msg/msg_vm.c

index 473d8e2..175317b 100644 (file)
@@ -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
  */