#include "xbt/virtu.h"
#include "xbt/ex.h" /* ex_backtrace_display */
+XBT_LOG_NEW_CATEGORY(msg, "All MSG categories");
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_kernel, msg,
"Logging specific to MSG (kernel)");
MSG_Global_t msg_global = NULL;
-
-/** \defgroup msg_simulation MSG simulation Functions
- * \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.
- */
-/** @addtogroup msg_simulation
- * \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Simulation functions" --> \endhtmlonly
- */
-
/********************************* MSG **************************************/
/** \ingroup msg_simulation
MSG_global_init(argc, argv);
}
-
-XBT_LOG_EXTERNAL_CATEGORY(msg_gos);
-XBT_LOG_EXTERNAL_CATEGORY(msg_kernel);
-XBT_LOG_EXTERNAL_CATEGORY(msg_mailbox);
-XBT_LOG_EXTERNAL_CATEGORY(msg_process);
-
/** \ingroup msg_simulation
* \brief Initialize some MSG internal data.
*/
xbt_getpid = MSG_process_self_PID;
if (!msg_global) {
- /* Connect our log channels: that must be done manually under windows */
- XBT_LOG_CONNECT(msg_gos, msg);
- XBT_LOG_CONNECT(msg_kernel, msg);
- XBT_LOG_CONNECT(msg_mailbox, msg);
- XBT_LOG_CONNECT(msg_process, msg);
-
SIMIX_global_init(argc, argv);
msg_global = xbt_new0(s_MSG_Global_t, 1);
+#ifdef MSG_USE_DEPRECATED
msg_global->max_channel = 0;
+#endif
msg_global->PID = 1;
msg_global->sent_msg = 0;
msg_global->task_copy_callback = NULL;
+ msg_global->process_data_cleanup = NULL;
/* initialization of the action module */
_MSG_action_init();
MSG_HOST_LEVEL = xbt_lib_add_level(host_lib, (void_f_pvoid_t) __MSG_host_destroy);
}
-/** \defgroup m_channel_management Understanding channels
- * \brief This section briefly describes the channel notion of MSG
- * (#m_channel_t).
- */
-/** @addtogroup m_channel_management
- * \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
- * socket. It doesn't need to be opened neither closed. It rather
- * corresponds to the ports opened on the different machines.
- */
-
+#ifdef MSG_USE_DEPRECATED
-/** \ingroup m_channel_management
- * \brief Set the number of channel in the simulation.
- *
- * This function has to be called to fix the number of channel in the
+/* This deprecated function has to be called to fix the number of channel in the
simulation before creating any host. Indeed, each channel is
represented by a different mailbox on each #m_host_t. This
function can then be called only once. This function takes only one
*/
MSG_error_t MSG_set_channel_number(int number)
{
+ XBT_WARN("DEPRECATED! Please use aliases instead");
xbt_assert((msg_global)
&& (msg_global->max_channel == 0),
"Channel number already set!");
return MSG_OK;
}
-/** \ingroup m_channel_management
- * \brief Return the number of channel in the simulation.
- *
- * This function has to be called once the number of channel is fixed. I can't
+/* This deprecated function has to be called once the number of channel is fixed. I can't
figure out a reason why anyone would like to call this function but nevermind.
* \return the number of channel in the simulation.
*/
int MSG_get_channel_number(void)
{
+ XBT_WARN("DEPRECATED! Please use aliases instead");
xbt_assert((msg_global)
&& (msg_global->max_channel != 0),
"Channel number not set yet!");
return msg_global->max_channel;
}
+#endif
/** \ingroup msg_simulation
* \brief Launch the MSG simulation
*/
int MSG_process_killall(int reset_PIDs)
{
- SIMIX_req_process_killall();
+ simcall_process_killall();
if (reset_PIDs > 0) {
msg_global->PID = reset_PIDs;
}
-/** \ingroup msg_easier_life
+/** \ingroup msg_simulation
* \brief A clock (in second).
*/
XBT_INLINE double MSG_get_clock(void)