Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
one step toward a live migration plugin
[simgrid.git] / src / msg / msg_gos.cpp
index 53ea92d..ad50af0 100644 (file)
@@ -6,12 +6,12 @@
 #include <xbt/ex.hpp>
 
 #include "src/kernel/activity/ExecImpl.hpp"
-#include "src/msg/msg_private.h"
-#include "src/simix/smx_private.h" /* MSG_task_listen looks inside the rdv directly. Not clean. */
+#include "src/msg/msg_private.hpp"
+#include "src/simix/smx_private.hpp" /* MSG_task_listen looks inside the rdv directly. Not clean. */
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_gos, msg, "Logging specific to MSG (gos)");
 
-SG_BEGIN_DECL()
+extern "C" {
 
 /** \ingroup msg_task_usage
  * \brief Executes a task and waits for its termination.
@@ -22,14 +22,7 @@ SG_BEGIN_DECL()
  */
 msg_error_t MSG_task_execute(msg_task_t task)
 {
-  /* TODO: add this to other locations */
-  msg_host_t host = MSG_process_get_host(MSG_process_self());
-  MSG_host_add_task(host, task);
-
-  msg_error_t ret = MSG_parallel_task_execute(task);
-
-  MSG_host_del_task(host, task);
-  return ret;
+  return MSG_parallel_task_execute(task);
 }
 
 /** \ingroup msg_task_usage
@@ -70,11 +63,12 @@ msg_error_t MSG_parallel_task_execute_with_timeout(msg_task_t task, double timeo
       simdata->compute =
           boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(simcall_execution_parallel_start(
               task->name, simdata->host_nb, simdata->host_list, simdata->flops_parallel_amount,
-              simdata->bytes_parallel_amount, 1.0, -1.0, timeout));
+              simdata->bytes_parallel_amount, -1.0, timeout));
       XBT_DEBUG("Parallel execution action created: %p", simdata->compute.get());
     } else {
       simdata->compute = boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(
-          simcall_execution_start(task->name, simdata->flops_amount, simdata->priority, simdata->bound));
+          simcall_execution_start(task->name, simdata->flops_amount, simdata->priority, simdata->bound,
+                                  MSG_process_get_host(MSG_process_self())));
     }
     simcall_set_category(simdata->compute, task->category);
     comp_state = simcall_execution_wait(simdata->compute);
@@ -259,7 +253,6 @@ msg_error_t MSG_task_receive_ext_bounded(msg_task_t * task, const char *alias, d
     THROW_UNIMPLEMENTED;
 
   TRACE_msg_task_get_start();
-  double start_time = MSG_get_clock();
 
   /* Sanity check */
   xbt_assert(task, "Null pointer for the task storage");
@@ -270,7 +263,7 @@ msg_error_t MSG_task_receive_ext_bounded(msg_task_t * task, const char *alias, d
   /* Try to receive it by calling SIMIX network layer */
   try {
     simcall_comm_recv(MSG_process_self()->getImpl(), mailbox->getImpl(), task, nullptr, nullptr, nullptr, nullptr, timeout, rate);
-    XBT_DEBUG("Got task %s from %s", (*task)->name, mailbox->getName());
+    XBT_DEBUG("Got task %s from %s", (*task)->name, mailbox->getCname());
     (*task)->simdata->setNotUsed();
   }
   catch (xbt_ex& e) {
@@ -291,7 +284,7 @@ msg_error_t MSG_task_receive_ext_bounded(msg_task_t * task, const char *alias, d
   }
 
   if (ret != MSG_HOST_FAILURE && ret != MSG_TRANSFER_FAILURE && ret != MSG_TIMEOUT) {
-    TRACE_msg_task_get_end(start_time, *task);
+    TRACE_msg_task_get_end(*task);
   }
   return ret;
 }
@@ -907,5 +900,4 @@ const char *MSG_task_get_category (msg_task_t task)
 {
   return task->category;
 }
-
-SG_END_DECL()
+}