Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
In case of failures, a process may become runnable without time step
authorChristophe Thiéry <christopho128@gmail.com>
Fri, 14 Oct 2011 15:46:45 +0000 (17:46 +0200)
committerChristophe Thiéry <christopho128@gmail.com>
Fri, 14 Oct 2011 15:46:45 +0000 (17:46 +0200)
Since commit e5922b4 (clean unfinished comms when terminating a process),
the test msg-actions was failing on a deadlock instead of waking up
the last process (who can terminate normally after a failed recv).

src/simix/smx_global.c

index ebd3dea..3485c6b 100644 (file)
@@ -240,7 +240,7 @@ void SIMIX_run(void)
     /* Clean processes to destroy */
     SIMIX_process_empty_trash();
 
     /* Clean processes to destroy */
     SIMIX_process_empty_trash();
 
-  } while (time != -1.0);
+  } while (time != -1.0 || xbt_dynar_length(simix_global->process_to_run) > 0);
 
   if (xbt_swag_size(simix_global->process_list) != 0) {
 
 
   if (xbt_swag_size(simix_global->process_list) != 0) {
 
@@ -363,6 +363,9 @@ void SIMIX_display_process_status(void)
       XBT_INFO("Process %ld (%s@%s): waiting for %s action %p (%s) to finish", process->pid, process->name, process->smx_host->name,
          action_description, process->waiting_action, process->waiting_action->name);
     }
       XBT_INFO("Process %ld (%s@%s): waiting for %s action %p (%s) to finish", process->pid, process->name, process->smx_host->name,
          action_description, process->waiting_action, process->waiting_action->name);
     }
+    else {
+      XBT_INFO("Process %ld (%s@%s)", process->pid, process->name, process->smx_host->name);
+    }
   }
 }
 
   }
 }