m_process_t MSG_process_create_with_arguments(const char *name,
m_process_code_t code, void *data,
m_host_t host, int argc, char **argv);
+void MSG_process_free(m_process_t process);
MSG_error_t MSG_get_arguments(int *argc, char ***argv);
MSG_error_t MSG_set_arguments(m_process_t process,int argc, char *argv[]);
{
xbt_fifo_item_t i = NULL;
m_host_t h = NULL;
+ m_process_t p = NULL;
+
+ while((p=xbt_fifo_shift(msg_global->process_list))) {
+ MSG_process_free(p);
+ }
xbt_context_exit();
xbt_fifo_foreach(msg_global->host,i,h,m_host_t) {
xbt_free(arg);
}
-
m_process_t MSG_process_create_with_arguments(const char *name,
m_process_code_t code, void *data,
m_host_t host, int argc, char **argv)
return process;
}
+void MSG_process_free(m_process_t process)
+{
+ xbt_fifo_remove(msg_global->process_list,process);
+ xbt_context_free(process->simdata->context);
+ MSG_process_cleanup(process);
+}
+
/** \ingroup m_process_management
* \brief Migrates an agent to another location.
*