Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Ensure that the same process never appears twice in the list of process_to_run.
[simgrid.git] / src / simix / smx_process.c
index 4ef99fc..d08aead 100644 (file)
@@ -289,8 +289,8 @@ void SIMIX_process_kill(smx_process_t process) {
         break;
     }
   }
-
-  xbt_dynar_push_as(simix_global->process_to_run, smx_process_t, process);
+  if(!xbt_dynar_member(simix_global->process_to_run, &(process)))
+    xbt_dynar_push_as(simix_global->process_to_run, smx_process_t, process);
 }
 
 /**
@@ -410,7 +410,8 @@ void SIMIX_process_resume(smx_process_t process, smx_process_t issuer)
       }
     }
     else {
-      xbt_dynar_push_as(simix_global->process_to_run, smx_process_t, process);
+      if(!xbt_dynar_member(simix_global->process_to_run, &(process)))
+        xbt_dynar_push_as(simix_global->process_to_run, smx_process_t, process);
     }
   }
 }