/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-#include "simgrid_config.h" /* getline */
#include "msg/private.h"
#include "xbt/str.h"
#include "xbt/dynar.h"
#include "xbt/replay_trace_reader.h"
+#include "simgrid_config.h" //For getline
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_action, msg,
"MSG actions for trace driven simulation");
static char *action_line = NULL;
static size_t action_len = 0;
-static char*const* action_get_action(char *name);
+static const char **action_get_action(char *name);
/** \ingroup msg_actions
* \brief Registers a function to handle a kind of action
static int MSG_action_runner(int argc, char *argv[])
{
- char *const*evt;
+ const char **evt;
if (action_fp) { // A unique trace file
while ((evt = action_get_action(argv[0]))) {
msg_action_fun function = xbt_dict_get(action_funs, evt[1]);
(*function) (evt);
- free((char**)evt);
+ free(evt);
}
} else { // Should have got my trace file in argument
xbt_assert1(argc >= 2,
if (!strcmp(argv[0],evt[0])) {
msg_action_fun function = xbt_dict_get(action_funs, evt[1]);
(*function) (evt);
- free((char**)evt);
+ free(evt);
} else {
- WARN1("%s: Ignore trace element not for me",
+ XBT_WARN("%s: Ignore trace element not for me",
xbt_replay_trace_reader_position(reader));
}
}
}
-static char*const* action_get_action(char *name)
+static const char **action_get_action(char *name)
{
ssize_t read;
xbt_dynar_t evt = NULL;
res = MSG_main();
if (xbt_dict_size(action_queues)) {
- WARN0
+ XBT_WARN
("Not all actions got consumed. If the simulation ended successfully (without deadlock), you may want to add new processes to your deployment file.");
xbt_dict_foreach(action_queues, cursor, name, todo) {
- WARN2("Still %lu actions for %s", xbt_dynar_length(todo), name);
+ XBT_WARN("Still %lu actions for %s", xbt_dynar_length(todo), name);
}
}