Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix example (bummer)
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 22 Mar 2017 10:28:54 +0000 (11:28 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Wed, 22 Mar 2017 10:28:54 +0000 (11:28 +0100)
chase smells

examples/msg/dht-pastry/dht-pastry.c
examples/s4u/actor-create/s4u_actor-create.tesh
examples/smpi/trace/trace.c
src/msg/msg_process.cpp
src/simix/ActorImpl.cpp
src/simix/simcalls.py
src/simix/smx_host_private.h
src/smpi/smpi_win.cpp
src/surf/plugins/host_energy.cpp
src/surf/plugins/host_load.cpp

index a66a9b1..12d13da 100644 (file)
@@ -41,14 +41,16 @@ typedef struct s_node {
   int ready;
   msg_comm_t comm_receive;                // current communication to receive
   xbt_dynar_t pending_tasks;
-} s_node_t, *node_t;
+} s_node_t;
+typedef s_node_t* node_t;
 
 typedef struct s_state {
   int id;
   int namespace_set[NAMESPACE_SIZE];
   int neighborhood_set[NEIGHBORHOOD_SIZE];
   int routing_table[LEVELS_COUNT][LEVEL_SIZE];
-} s_state_t, *state_t;
+} s_state_t;
+typedef s_state_t* state_t;
 
 /** Types of tasks exchanged between nodes. */
 typedef enum {
@@ -67,9 +69,9 @@ typedef struct s_task_data {
   //const char* issuer_host_name;           // used for logging
   int steps;
   state_t state;
-} s_task_data_t, *task_data_t;
+} s_task_data_t;
+typedef s_task_data_t* task_data_t;
 
-static void get_mailbox(int node_id, char* mailbox);
 static int domain(unsigned int a, unsigned int level);
 static int shl(int a, int b);
 static int closest_in_namespace_set(node_t node, int dest);
index e481ba2..f436e01 100644 (file)
@@ -1,10 +1,10 @@
 #! ./tesh
 
 $ $SG_TEST_EXENV ${bindir:=.}/s4u_actor-create
-> [Tremblay:sender1:(0) 0.000000] [s4u_launching_test/INFO] Hello s4u, I have something to send
-> [Jupiter:sender2:(0) 0.000000] [s4u_launching_test/INFO] Hello s4u, I have something to send
-> [Fafard:receiver:(0) 0.000000] [s4u_launching_test/INFO] Hello s4u, I'm ready to get any message you'd want on mb42
-> [Tremblay:sender1:(0) 0.025709] [s4u_launching_test/INFO] I'm done. See you.
-> [Jupiter:sender2:(0) 0.070434] [s4u_launching_test/INFO] I'm done. See you.
-> [Fafard:receiver:(0) 0.070434] [s4u_launching_test/INFO] I received 'GaBuZoMeu' and 'GloubiBoulga'
-> [Fafard:receiver:(0) 0.070434] [s4u_launching_test/INFO] I'm done. See you.
+> [Tremblay:sender1:(0) 0.000000] [s4u_actor_create/INFO] Hello s4u, I have something to send
+> [Jupiter:sender2:(0) 0.000000] [s4u_actor_create/INFO] Hello s4u, I have something to send
+> [Fafard:receiver:(0) 0.000000] [s4u_actor_create/INFO] Hello s4u, I'm ready to get any message you'd want on mb42
+> [Tremblay:sender1:(0) 0.025709] [s4u_actor_create/INFO] I'm done. See you.
+> [Jupiter:sender2:(0) 0.070434] [s4u_actor_create/INFO] I'm done. See you.
+> [Fafard:receiver:(0) 0.070434] [s4u_actor_create/INFO] I received 'GaBuZoMeu' and 'GloubiBoulga'
+> [Fafard:receiver:(0) 0.070434] [s4u_actor_create/INFO] I'm done. See you.
index 786b9e2..d995984 100644 (file)
@@ -12,7 +12,8 @@
 
 int main(int argc, char *argv[])
 {
-  int rank, numprocs, i;
+  int rank;
+  int numprocs;
 
   MPI_Init(&argc, &argv);
   MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
@@ -58,51 +59,51 @@ int main(int argc, char *argv[])
 
     /** Test C */
     TRACE_smpi_set_category("C");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
     }
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Wait(&req[i], &sta[i]);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("D");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
     }
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       int completed;
       MPI_Waitany(N, req, &completed, sta);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("E");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("F");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("G");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
     }
     MPI_Waitall(N, req, sta);
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("H");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("I");
-    for (i = 0; i < 2 * N; i++) {
+    for (int i = 0; i < 2 * N; i++) {
       if (i < N) {
         MPI_Send(r, DATATOSENT, MPI_INT, 2, tag, MPI_COMM_WORLD);
       } else {
@@ -110,7 +111,7 @@ int main(int argc, char *argv[])
       }
     }
     MPI_Barrier(MPI_COMM_WORLD);
-    for (i = 0; i < 2 * N; i++) {
+    for (int i = 0; i < 2 * N; i++) {
       if (i < N) {
         MPI_Irecv(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
       } else {
@@ -121,14 +122,14 @@ int main(int argc, char *argv[])
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("J");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
     }
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       int flag;
       MPI_Test(&req[i], &flag, &sta[i]);
     }
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Wait(&req[i], &sta[i]);
     }
     free(r);
@@ -152,71 +153,71 @@ int main(int argc, char *argv[])
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("C");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("D");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("E");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
     }
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Wait(&req[i], &sta[i]);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("F");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
     }
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       int completed;
       MPI_Waitany(N, req, &completed, sta);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("G");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("H");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
     }
     MPI_Waitall(N, req, sta);
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("I");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
     }
     MPI_Waitall(N, req, sta);
 
     MPI_Barrier(MPI_COMM_WORLD);
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Isend(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
     }
     MPI_Waitall(N, req, sta);
     MPI_Barrier(MPI_COMM_WORLD);
 
     TRACE_smpi_set_category("J");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
     }
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       int flag;
       MPI_Test(&req[i], &flag, &sta[i]);
     }
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Wait(&req[i], &sta[i]);
     }
     free(r);
@@ -237,16 +238,16 @@ int main(int argc, char *argv[])
     MPI_Barrier(MPI_COMM_WORLD);
     MPI_Barrier(MPI_COMM_WORLD);
     TRACE_smpi_set_category("I");
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
     }
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       int completed;
       MPI_Waitany(N, req, &completed, sta);
     }
     MPI_Barrier(MPI_COMM_WORLD);
 
-    for (i = 0; i < N; i++) {
+    for (int i = 0; i < N; i++) {
       MPI_Send(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD);
     }
     MPI_Barrier(MPI_COMM_WORLD);
index 7943aeb..d0b03bf 100644 (file)
@@ -121,7 +121,8 @@ msg_process_t MSG_process_create_with_environment(const char *name, xbt_main_fun
 {
   std::function<void()> function;
   if (code)
-    function = simgrid::xbt::wrapMain(code, argc, const_cast<const char*const*>(argv));
+    function = simgrid::xbt::wrapMain(code, argc, static_cast<const char* const*>(argv));
+
   msg_process_t res = MSG_process_create_from_stdfunc(name, std::move(function), data, host, properties);
   for (int i = 0; i != argc; ++i)
     xbt_free(argv[i]);
index bcce486..df96ad7 100644 (file)
@@ -146,16 +146,16 @@ void SIMIX_process_cleanup(smx_actor_t process)
 /**
  * Garbage collection
  *
- * Should be called some time to time to free the memory allocated for processes
- * that have finished (or killed).
+ * Should be called some time to time to free the memory allocated for processes that have finished (or killed).
  */
 void SIMIX_process_empty_trash()
 {
-  smx_actor_t process = nullptr;
+  smx_actor_t process = static_cast<smx_actor_t>(xbt_swag_extract(simix_global->process_to_destroy));
 
-  while ((process = (smx_actor_t) xbt_swag_extract(simix_global->process_to_destroy))) {
+  while (process) {
     XBT_DEBUG("Getting rid of %p",process);
     intrusive_ptr_release(process);
+    process = static_cast<smx_actor_t>(xbt_swag_extract(simix_global->process_to_destroy));
   }
 }
 
@@ -603,12 +603,13 @@ void SIMIX_process_resume(smx_actor_t process)
 {
   XBT_IN("process = %p", process);
 
-  if(process->context->iwannadie) {
+  if (process->context->iwannadie) {
     XBT_VERB("Ignoring request to suspend a process that is currently dying.");
     return;
   }
 
-  if(!process->suspended) return;
+  if (!process->suspended)
+    return;
   process->suspended = 0;
 
   /* resume the synchronization that was blocking the resumed process. */
index 70b1bb3..c6854e5 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
-# Copyright (c) 2014-2016. The SimGrid Team. All rights reserved.
+# Copyright (c) 2014-2017. The SimGrid Team. All rights reserved.
 
 # 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.
@@ -233,9 +233,9 @@ def header(name):
 
 
 def handle(fd, func, simcalls, guarded_simcalls):
-    def nonempty(e): return e != ''
-    fd.write(
-        '\n'.join(filter(nonempty, (func(simcall) for simcall in simcalls))))
+    def nonempty(e): 
+        return e != ''
+    fd.write('\n'.join(filter(nonempty, func(simcall) for simcall in simcalls)))
 
     for guard, list in guarded_simcalls.items():
         fd.write('\n#if %s\n' % (guard))
index 7b85ee2..3db24e8 100644 (file)
@@ -37,7 +37,6 @@ namespace simgrid {
     };
   }
 }
-typedef simgrid::simix::Host s_smx_host_priv_t;
 
 SG_BEGIN_DECL()
 XBT_PRIVATE void SIMIX_host_add_auto_restart_process(sg_host_t host,
index f5e573d..080f519 100644 (file)
@@ -408,8 +408,9 @@ int Win::complete(){
 int Win::wait(){
   //naive, blocking implementation.
   XBT_DEBUG("Entering MPI_Win_Wait");
-  int i=0,j=0;
-  int size = group_->size();
+  int i             = 0;
+  int j             = 0;
+  int size          = group_->size();
   MPI_Request* reqs = xbt_new0(MPI_Request, size);
 
   while(j!=size){
index 8d701b7..d64ed6f 100644 (file)
@@ -282,19 +282,19 @@ static void onActionStateChange(simgrid::surf::CpuAction* action, simgrid::surf:
 {
   for (simgrid::surf::Cpu* cpu : action->cpus()) {
     simgrid::s4u::Host* host = cpu->getHost();
-    if (host == nullptr)
-      continue;
+    if (host != nullptr) {
 
-    // If it's a VM, take the corresponding PM
-    simgrid::s4u::VirtualMachine* vm = dynamic_cast<simgrid::s4u::VirtualMachine*>(host);
-    if (vm) // If it's a VM, take the corresponding PM
-      host = vm->pimpl_vm_->getPm();
+      // If it's a VM, take the corresponding PM
+      simgrid::s4u::VirtualMachine* vm = dynamic_cast<simgrid::s4u::VirtualMachine*>(host);
+      if (vm) // If it's a VM, take the corresponding PM
+        host = vm->pimpl_vm_->getPm();
 
-    // Get the host_energy extension for the relevant host
-    HostEnergy* host_energy = host->extension<HostEnergy>();
+      // Get the host_energy extension for the relevant host
+      HostEnergy* host_energy = host->extension<HostEnergy>();
 
-    if (host_energy->last_updated < surf_get_clock())
-      host_energy->update();
+      if (host_energy->last_updated < surf_get_clock())
+        host_energy->update();
+    }
   }
 }
 
index 54761f1..5225633 100644 (file)
@@ -118,12 +118,11 @@ static void onActionStateChange(simgrid::surf::CpuAction* action, simgrid::surf:
   for (simgrid::surf::Cpu* cpu : action->cpus()) {
     simgrid::s4u::Host* host = cpu->getHost();
 
-    if (host == nullptr)
-      continue;
-
-    // Get the host_load extension for the relevant host
-    HostLoad* host_load = host->extension<HostLoad>();
-    host_load->update();
+    if (host != nullptr) {
+      // Get the host_load extension for the relevant host
+      HostLoad* host_load = host->extension<HostLoad>();
+      host_load->update();
+    }
   }
 }