Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
mv data from msg_task_t to simgrid::msg::Task
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 25 Feb 2019 15:30:39 +0000 (16:30 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Mon, 25 Feb 2019 15:30:39 +0000 (16:30 +0100)
include/simgrid/msg.h
src/msg/msg_private.hpp
src/msg/msg_task.cpp

index 9a0d2cf..069282d 100644 (file)
@@ -241,7 +241,6 @@ typedef sg_msg_Comm* msg_comm_t;
 
 typedef struct msg_task {
   simdata_task_t simdata; /**< @brief simulator data */
-  void* data;             /**< @brief user data */
   long long int counter;  /* task unique identifier for instrumentation */
 } s_msg_task_t;
 
index 01ec91a..0f2c008 100644 (file)
@@ -17,11 +17,12 @@ namespace msg {
 class Task {
   std::string name_             = "";
   std::string tracing_category_ = "";
+  void* userdata_               = nullptr;
 
 public:
   ~Task();
-  explicit Task(std::string name, double flops_amount, double bytes_amount)
-      : name_(std::move(name)), flops_amount(flops_amount), bytes_amount(bytes_amount)
+  explicit Task(std::string name, double flops_amount, double bytes_amount, void* data)
+      : name_(std::move(name)), userdata_(data), flops_amount(flops_amount), bytes_amount(bytes_amount)
   {
   }
   void set_used();
@@ -33,6 +34,8 @@ public:
   void set_tracing_category(const char* category) { tracing_category_ = category ? std::string(category) : ""; }
   const std::string& get_tracing_category() { return tracing_category_; }
   bool has_tracing_category() { return not tracing_category_.empty(); }
+  void* get_user_data() { return userdata_; }
+  void set_user_data(void* data) { userdata_ = data; }
 
   kernel::activity::ExecImplPtr compute          = nullptr; /* SIMIX modeling of computation */
   s4u::CommPtr comm                              = nullptr; /* S4U modeling of communication */
index c4ad363..3f16123 100644 (file)
@@ -65,10 +65,9 @@ msg_task_t MSG_task_create(const char *name, double flop_amount, double message_
 
   msg_task_t task        = new s_msg_task_t;
   /* Simulator Data */
-  task->simdata = new simgrid::msg::Task(name ? name : "", flop_amount, message_size);
+  task->simdata = new simgrid::msg::Task(name ? name : "", flop_amount, message_size, data);
 
   /* Task structure */
-  task->data = data;
   task->counter  = counter++;
 
   if (MC_is_active())
@@ -121,15 +120,15 @@ msg_task_t MSG_parallel_task_create(const char *name, int host_nb, const msg_hos
 }
 
 /** @brief Return the user data of the given task */
-void *MSG_task_get_data(msg_task_t task)
+voidMSG_task_get_data(msg_task_t task)
 {
-  return (task->data);
+  return (task->simdata->get_user_data());
 }
 
 /** @brief Sets the user data of a given task */
 void MSG_task_set_data(msg_task_t task, void *data)
 {
-  task->data = data;
+  task->simdata->set_user_data(data);
 }
 
 /** @brief Sets a function to be called when a task has just been copied.