Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
mv deprecated examples to teshsuite
[simgrid.git] / teshsuite / msg / actions-comm / actions-comm.c
similarity index 59%
rename from examples/msg/actions-comm/actions-comm.c
rename to teshsuite/msg/actions-comm/actions-comm.c
index 2c487db..b431b35 100644 (file)
@@ -9,24 +9,24 @@
 XBT_LOG_NEW_DEFAULT_CATEGORY(actions, "Messages specific for this msg example");
 int communicator_size = 0;
 
-static void action_Isend(const char *const *action);
+static void action_Isend(const char* const* action);
 
 typedef struct {
   int last_Irecv_sender_id;
   int bcast_counter;
-  xbt_dynar_t isends;           /* of msg_comm_t */
+  xbt_dynar_t isends; /* of msg_comm_t */
   /* Used to implement irecv+wait */
-  xbt_dynar_t irecvs;           /* of msg_comm_t */
-  xbt_dynar_t tasks;            /* of msg_task_t */
+  xbt_dynar_t irecvs; /* of msg_comm_t */
+  xbt_dynar_t tasks;  /* of msg_task_t */
 } s_process_globals_t;
 
-typedef s_process_globals_t *process_globals_t;
+typedef s_process_globals_tprocess_globals_t;
 
 /* Helper function */
-static double parse_double(const char *string)
+static double parse_double(const charstring)
 {
   double value;
-  char *endptr;
+  charendptr;
 
   value = strtod(string, &endptr);
   if (*endptr != '\0')
@@ -34,17 +34,18 @@ static double parse_double(const char *string)
   return value;
 }
 
-#define ACT_DEBUG(...) \
-  if (XBT_LOG_ISENABLED(actions, xbt_log_priority_verbose)) {  \
-    char *NAME = xbt_str_join_array(action, " ");              \
-    XBT_DEBUG(__VA_ARGS__);                                    \
-    xbt_free(NAME);                                            \
-  } else ((void)0)
+#define ACT_DEBUG(...)                                                                                                 \
+  if (XBT_LOG_ISENABLED(actions, xbt_log_priority_verbose)) {                                                          \
+    char* NAME = xbt_str_join_array(action, " ");                                                                      \
+    XBT_DEBUG(__VA_ARGS__);                                                                                            \
+    xbt_free(NAME);                                                                                                    \
+  } else                                                                                                               \
+  ((void)0)
 
-static void log_action(const char *const *action, double date)
+static void log_action(const char* const* action, double date)
 {
   if (XBT_LOG_ISENABLED(actions, xbt_log_priority_verbose)) {
-    char *name = xbt_str_join_array(action, " ");
+    charname = xbt_str_join_array(action, " ");
     XBT_VERB("%s %f", name, date);
     xbt_free(name);
   }
@@ -52,11 +53,11 @@ static void log_action(const char *const *action, double date)
 
 static void asynchronous_cleanup(void)
 {
-  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+  process_globals_t globals = (process_globals_t)MSG_process_get_data(MSG_process_self());
 
   /* Destroy any isend which correspond to completed communications */
   msg_comm_t comm;
-  while (1/*true*/) {
+  while (1 /*true*/) {
     int pos_found = MSG_comm_testany(globals->isends);
     if (pos_found == -1) /* none remaining */
       break;
@@ -66,14 +67,14 @@ static void asynchronous_cleanup(void)
 }
 
 /* My actions */
-static void action_send(const char *const *action)
+static void action_send(const char* const* action)
 {
   char to[250];
-  const char *size_str = action[3];
-  double size = parse_double(size_str);
-  double clock = MSG_get_clock();
+  const charsize_str = action[3];
+  double size          = parse_double(size_str);
+  double clock         = MSG_get_clock();
 
-  snprintf(to,249, "%s_%s", MSG_process_get_name(MSG_process_self()), action[2]);
+  snprintf(to, 249, "%s_%s", MSG_process_get_name(MSG_process_self()), action[2]);
 
   ACT_DEBUG("Entering Send: %s (size: %g)", NAME, size);
   if (size < 65536) {
@@ -86,14 +87,14 @@ static void action_send(const char *const *action)
   asynchronous_cleanup();
 }
 
-static void action_Isend(const char *const *action)
+static void action_Isend(const char* const* action)
 {
   char to[250];
-  const char *size = action[3];
-  double clock = MSG_get_clock();
-  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+  const char* size          = action[3];
+  double clock              = MSG_get_clock();
+  process_globals_t globals = (process_globals_t)MSG_process_get_data(MSG_process_self());
 
-  snprintf(to,249, "%s_%s", MSG_process_get_name(MSG_process_self()), action[2]);
+  snprintf(to, 249, "%s_%s", MSG_process_get_name(MSG_process_self()), action[2]);
   msg_comm_t comm = MSG_task_isend(MSG_task_create(to, 0, parse_double(size), NULL), to);
   xbt_dynar_push(globals->isends, &comm);
 
@@ -102,13 +103,13 @@ static void action_Isend(const char *const *action)
   asynchronous_cleanup();
 }
 
-static void action_recv(const char *const *action)
+static void action_recv(const char* const* action)
 {
   char mailbox_name[250];
   msg_task_t task = NULL;
-  double clock = MSG_get_clock();
+  double clock    = MSG_get_clock();
 
-  snprintf(mailbox_name,249, "%s_%s", action[2], MSG_process_get_name(MSG_process_self()));
+  snprintf(mailbox_name, 249, "%s_%s", action[2], MSG_process_get_name(MSG_process_self()));
 
   ACT_DEBUG("Receiving: %s", NAME);
   msg_error_t res = MSG_task_receive(&task, mailbox_name);
@@ -120,15 +121,15 @@ static void action_recv(const char *const *action)
   asynchronous_cleanup();
 }
 
-static void action_Irecv(const char *const *action)
+static void action_Irecv(const char* const* action)
 {
   char mailbox[250];
-  double clock = MSG_get_clock();
-  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+  double clock              = MSG_get_clock();
+  process_globals_t globals = (process_globals_t)MSG_process_get_data(MSG_process_self());
 
   XBT_DEBUG("Irecv on %s", MSG_process_get_name(MSG_process_self()));
 
-  snprintf(mailbox,249, "%s_%s", action[2], MSG_process_get_name(MSG_process_self()));
+  snprintf(mailbox, 249, "%s_%s", action[2], MSG_process_get_name(MSG_process_self()));
   msg_task_t t = NULL;
   xbt_dynar_push(globals->tasks, &t);
   msg_comm_t c = MSG_task_irecv(xbt_dynar_get_ptr(globals->tasks, xbt_dynar_length(globals->tasks) - 1), mailbox);
@@ -138,12 +139,12 @@ static void action_Irecv(const char *const *action)
   asynchronous_cleanup();
 }
 
-static void action_wait(const char *const *action)
+static void action_wait(const char* const* action)
 {
   msg_task_t task = NULL;
   msg_comm_t comm;
-  double clock = MSG_get_clock();
-  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+  double clock              = MSG_get_clock();
+  process_globals_t globals = (process_globals_t)MSG_process_get_data(MSG_process_self());
 
   xbt_assert(xbt_dynar_length(globals->irecvs), "action wait not preceded by any irecv: %s",
              xbt_str_join_array(action, " "));
@@ -159,7 +160,7 @@ static void action_wait(const char *const *action)
 }
 
 /* FIXME: that's a poor man's implementation: we should take the message exchanges into account */
-static void action_barrier(const char *const *action)
+static void action_barrier(const char* const* action)
 {
   static msg_bar_t barrier           = NULL;
   static int processes_arrived_sofar = 0;
@@ -178,35 +179,35 @@ static void action_barrier(const char *const *action)
   ACT_DEBUG("Exiting barrier: %s", NAME);
 
   processes_arrived_sofar--;
-  if (processes_arrived_sofar<=0) {
+  if (processes_arrived_sofar <= 0) {
     MSG_barrier_destroy(barrier);
     barrier = NULL;
   }
 }
 
-static void action_bcast(const char *const *action)
+static void action_bcast(const char* const* action)
 {
   char mailbox[80];
   double comm_size = parse_double(action[2]);
-  msg_task_t task = NULL;
-  double clock = MSG_get_clock();
+  msg_task_t task  = NULL;
+  double clock     = MSG_get_clock();
 
-  process_globals_t counters = (process_globals_t) MSG_process_get_data(MSG_process_self());
+  process_globals_t counters = (process_globals_t)MSG_process_get_data(MSG_process_self());
 
   xbt_assert(communicator_size, "Size of Communicator is not defined, can't use collective operations");
 
-  const char * process_name = MSG_process_get_name(MSG_process_self());
+  const char* process_name = MSG_process_get_name(MSG_process_self());
 
-  char *bcast_identifier = bprintf("bcast_%d", counters->bcast_counter);
+  charbcast_identifier = bprintf("bcast_%d", counters->bcast_counter);
   counters->bcast_counter++;
 
   if (!strcmp(process_name, "p0")) {
     XBT_DEBUG("%s: %s is the Root", bcast_identifier, process_name);
 
-    msg_comm_t *comms = xbt_new0(msg_comm_t, communicator_size - 1);
+    msg_comm_tcomms = xbt_new0(msg_comm_t, communicator_size - 1);
 
     for (int i = 1; i < communicator_size; i++) {
-      snprintf(mailbox,79, "%s_p0_p%d", bcast_identifier, i);
+      snprintf(mailbox, 79, "%s_p0_p%d", bcast_identifier, i);
       comms[i - 1] = MSG_task_isend(MSG_task_create(mailbox, 0, comm_size, NULL), mailbox);
     }
     MSG_comm_waitall(comms, communicator_size - 1, -1);
@@ -216,7 +217,7 @@ static void action_bcast(const char *const *action)
 
     XBT_DEBUG("%s: all messages sent by %s have been received", bcast_identifier, process_name);
   } else {
-    snprintf(mailbox,79, "%s_p0_%s", bcast_identifier, process_name);
+    snprintf(mailbox, 79, "%s_p0_%s", bcast_identifier, process_name);
     MSG_task_receive(&task, mailbox);
     MSG_task_destroy(task);
     XBT_DEBUG("%s: %s has received", bcast_identifier, process_name);
@@ -226,20 +227,20 @@ static void action_bcast(const char *const *action)
   xbt_free(bcast_identifier);
 }
 
-static void action_comm_size(const char *const *action)
+static void action_comm_size(const char* const* action)
 {
-  const char *size = action[2];
-  double clock = MSG_get_clock();
+  const charsize = action[2];
+  double clock     = MSG_get_clock();
 
   communicator_size = parse_double(size);
   log_action(action, MSG_get_clock() - clock);
 }
 
-static void action_compute(const char *const *action)
+static void action_compute(const char* const* action)
 {
-  const char *amount = action[2];
-  msg_task_t task = MSG_task_create("task", parse_double(amount), 0, NULL);
-  double clock = MSG_get_clock();
+  const charamount = action[2];
+  msg_task_t task    = MSG_task_create("task", parse_double(amount), 0, NULL);
+  double clock       = MSG_get_clock();
 
   ACT_DEBUG("Entering %s", NAME);
   MSG_task_execute(task);
@@ -247,19 +248,19 @@ static void action_compute(const char *const *action)
   log_action(action, MSG_get_clock() - clock);
 }
 
-static void action_init(const char *const *action)
+static void action_init(const char* const* action)
 {
   XBT_DEBUG("Initialize the counters");
-  process_globals_t globals = (process_globals_t) calloc(1, sizeof(s_process_globals_t));
-  globals->isends = xbt_dynar_new(sizeof(msg_comm_t), NULL);
-  globals->irecvs = xbt_dynar_new(sizeof(msg_comm_t), NULL);
-  globals->tasks = xbt_dynar_new(sizeof(msg_task_t), NULL);
+  process_globals_t globals = (process_globals_t)calloc(1, sizeof(s_process_globals_t));
+  globals->isends           = xbt_dynar_new(sizeof(msg_comm_t), NULL);
+  globals->irecvs           = xbt_dynar_new(sizeof(msg_comm_t), NULL);
+  globals->tasks            = xbt_dynar_new(sizeof(msg_task_t), NULL);
   MSG_process_set_data(MSG_process_self(), globals);
 }
 
-static void action_finalize(const char *const *action)
+static void action_finalize(const char* const* action)
 {
-  process_globals_t globals = (process_globals_t) MSG_process_get_data(MSG_process_self());
+  process_globals_t globals = (process_globals_t)MSG_process_get_data(MSG_process_self());
   if (globals) {
     asynchronous_cleanup();
     xbt_dynar_free_container(&(globals->isends));
@@ -269,20 +270,19 @@ static void action_finalize(const char *const *action)
   }
 }
 
-int main(int argc, char *argv[])
+int main(int argc, charargv[])
 {
   /* Check the given arguments */
   MSG_init(&argc, argv);
   /* Explicit initialization of the action module is required now*/
   MSG_action_init();
 
-  xbt_assert(argc > 2,
-       "Usage: %s platform_file deployment_file [action_files]\n"
-       "\t# if all actions are in the same file\n"
-       "\tExample: %s msg_platform.xml msg_deployment.xml actions\n"
-       "\t# if actions are in separate files, specified in deployment\n"
-       "\tExample: %s msg_platform.xml msg_deployment.xml ",
-       argv[0],argv[0],argv[0]);
+  xbt_assert(argc > 2, "Usage: %s platform_file deployment_file [action_files]\n"
+                       "\t# if all actions are in the same file\n"
+                       "\tExample: %s msg_platform.xml msg_deployment.xml actions\n"
+                       "\t# if actions are in separate files, specified in deployment\n"
+                       "\tExample: %s msg_platform.xml msg_deployment.xml ",
+             argv[0], argv[0], argv[0]);
 
   MSG_create_environment(argv[1]);
   MSG_launch_application(argv[2]);