#if defined(HAVE_SIGNAL) && defined(HAVE_SIGNAL_H)
static void gras_sigusr_handler(int sig)
{
- INFO0("SIGUSR1 received. Display the backtrace");
+ XBT_INFO("SIGUSR1 received. Display the backtrace");
xbt_backtrace_display_current();
}
XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_emul);
XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_process);
+/**
+ * @ingroup GRAS_API
+ * \brief Initialize the gras mechanisms.
+ */
void gras_init(int *argc, char **argv)
{
-
+ int first = 0;
gras_procdata_t *pd;
gras_msg_procdata_t msg_pd;
- VERB0("Initialize GRAS");
+ XBT_VERB("Initialize GRAS");
xbt_getpid = gras_os_getpid;
/* First initialize the XBT */
* - declare process specific data we need (without creating them)
*/
if (gras_running_process == 0) {
+ first = 1;
/* Connect our log channels: that must be done manually under windows */
XBT_LOG_CONNECT(gras_ddt, gras);
XBT_LOG_CONNECT(gras_ddt_cbps, gras_ddt);
gras_trp_register();
gras_msg_register();
}
+ gras_running_process++;
/*
* Initialize the process specific stuff
/*
* Initialize the global stuff if it's not the first process created
*/
- if (gras_running_process++ == 0) {
+ if (first) {
gras_emul_init();
gras_msg_init();
gras_trp_init();
pd->listener = gras_msg_listener_launch(msg_pd->msg_received);
}
+/**
+ * @ingroup GRAS_API
+ * @brief Finalize the gras mechanisms.
+ * */
void gras_exit(void)
{
- gras_procdata_t *pd;
- INFO0("Exiting GRAS");
+ XBT_INFO("Exiting GRAS");
amok_exit();
gras_moddata_leave();
- pd = gras_procdata_get();
gras_msg_listener_shutdown();
gras_process_exit();
if (--gras_running_process == 0) {