* \brief This section describes the functions you need to know to
* set up a simulation. You should have a look at \ref MSG_examples
* to have an overview of their usage.
+ * \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Simulation functions" --> \endhtmlonly
*/
/********************************* MSG **************************************/
len = strlen(filename);
if((len<ext_len) || (strncmp(filename+len-ext_len,ext,ext_len))) {
- CRITICAL2("%s does not end by \"%s\". It may cause troubles when using Paje\n",
+ CRITICAL2("The name of the Paje trace file \"%s\" does not end by \"%s\". Paje will cause difficulties to read it.\n",
filename,ext);
}
/** \defgroup m_channel_management Understanding channels
* \brief This section briefly describes the channel notion of MSG
* (#m_channel_t).
+ * \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Channels" --> \endhtmlonly
+ *
*
* For convenience, the simulator provides the notion of channel
* that is close to the tag notion in MPI. A channel is not a
}
while ((process = xbt_fifo_pop(msg_global->process_to_run))) {
- DEBUG3("Scheduling %s(%d) on %s",
+ DEBUG3("Scheduling %s(%d) on %s",
process->name,process->simdata->PID,
process->simdata->host->name);
msg_global->current_process = process;
m_process_t p = NULL;
m_process_t self = MSG_process_self();
- while((p=xbt_fifo_shift(msg_global->process_list))) {
+ while((p=xbt_fifo_pop(msg_global->process_list))) {
if(p!=self) MSG_process_kill(p);
}
m_process_t p = NULL;
- while((p=xbt_fifo_shift(msg_global->process_list))) {
+ while((p=xbt_fifo_pop(msg_global->process_list))) {
MSG_process_kill(p);
}
xbt_context_exit();