Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Cleanup in SIMIX_process_on_exit_runall
authorSamuel Lepetit <samuel.lepetit@inria.fr>
Thu, 21 Jun 2012 08:54:24 +0000 (10:54 +0200)
committerSamuel Lepetit <samuel.lepetit@inria.fr>
Thu, 21 Jun 2012 08:54:24 +0000 (10:54 +0200)
src/simix/smx_process.c

index 18656fa..0020a7a 100644 (file)
@@ -714,16 +714,11 @@ xbt_dynar_t SIMIX_processes_as_dynar(void) {
   return res;
 }
 void SIMIX_process_on_exit_runall(smx_process_t process) {
-  int cpt;
-  if (!process->on_exit) {
-    return;
-  }
-
-  smx_process_exit_fun_t exit_fun;
+  s_smx_process_exit_fun_t exit_fun;
 
-  for (cpt = xbt_dynar_length(process->on_exit) - 1; cpt >= 0; cpt--) {
-    exit_fun = xbt_dynar_get_ptr(process->on_exit, cpt);
-    (exit_fun->fun)(exit_fun->arg);
+  while (!xbt_dynar_is_empty(process->on_exit)) {
+    exit_fun = xbt_dynar_pop_as(process->on_exit,s_smx_process_exit_fun_t);
+    (exit_fun.fun)(exit_fun.arg);
   }
 }
 void SIMIX_process_on_exit(int_f_pvoid_t fun, void *data) {