const char *ext = ".trace";
int ext_len = strlen(ext);
int len;
+ m_host_t host;
+ m_process_t process;
+ xbt_fifo_item_t item = NULL;
xbt_assert0(msg_global, "Initialize MSG first\n");
xbt_assert0(!msg_global->paje_output, "Paje output already defined\n");
fprintf(msg_global->paje_output,"%s",paje_preembule);
fprintf(msg_global->paje_output,"%s",type_definitions);
+
+ /* Channels */
for(i=0; i<msg_global->max_channel; i++) {
fprintf(msg_global->paje_output, "6 COMM_%d Comm \"Channel %d\"\n" ,i,i);
}
fprintf(msg_global->paje_output,
"7 0.0 CUR Sim_t 0 \"MSG simulation\"\n");
+ /* Hosts */
+ xbt_fifo_foreach(msg_global->host,item,host,m_host_t) {
+ PAJE_HOST_NEW(host);
+ }
+
+ /* Process */
+ xbt_fifo_foreach(msg_global->process_list,item,process,m_process_t) {
+ PAJE_PROCESS_NEW(process);
+ }
}
/** \ingroup msg_simulation
process->name,process->simdata->PID,
process->simdata->host->name);
msg_global->current_process = process;
+ fflush(NULL);
xbt_context_schedule(process->simdata->context);
msg_global->current_process = NULL;
}
{
xbt_fifo_item_t i = NULL;
m_process_t p = NULL;
+ m_process_t self = MSG_process_self();
while((p=xbt_fifo_shift(msg_global->process_list))) {
- MSG_process_kill(p);
+ if(p!=self) MSG_process_kill(p);
}
- xbt_context_empty_trash();
+
if(reset_PIDs>0) {
msg_global->PID = reset_PIDs;
msg_global->session++;
}
+ xbt_context_empty_trash();
+
+ if(self) {
+ xbt_context_yield();
+ }
+
return msg_global->PID;
}
/** \ingroup msg_easier_life
* \brief A clock (in second).
+ * \deprecated Use MSG_get_clock
*/
double MSG_getClock(void) {
return surf_get_clock();
}
+/** \ingroup msg_easier_life
+ * \brief A clock (in second).
+ */
+double MSG_get_clock(void) {
+ return surf_get_clock();
+}
+