break;
case SIMIX_ACTION_COMMUNICATE:
+ xbt_fifo_remove(process->comms, process->waiting_action);
SIMIX_comm_destroy(process->waiting_action);
break;
const char* SIMIX_process_get_name(smx_process_t process)
{
- return process->name;
+ if(process->name)
+ return process->name;
+ return "";
}
smx_process_t SIMIX_process_get_by_name(const char* name)
/**
* \brief Returns the list of processes to run.
*/
-XBT_INLINE xbt_dynar_t SIMIX_process_get_runnable(void)
+xbt_dynar_t SIMIX_process_get_runnable(void)
{
return simix_global->process_to_run;
}
+
+/**
+ * \brief Returns the process from PID.
+ */
+smx_process_t SIMIX_process_from_PID(int PID)
+{
+ smx_process_t proc;
+ xbt_swag_foreach(proc, simix_global->process_list)
+ {
+ if(proc->pid == PID)
+ return proc;
+ }
+ return NULL;
+}