From: Frederic Suter Date: Mon, 25 Feb 2019 15:30:39 +0000 (+0100) Subject: mv data from msg_task_t to simgrid::msg::Task X-Git-Tag: v3_22~247 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/8d32b538f95bb556313e2893981fe742494c90c7?ds=sidebyside mv data from msg_task_t to simgrid::msg::Task --- diff --git a/include/simgrid/msg.h b/include/simgrid/msg.h index 9a0d2cf40a..069282dea7 100644 --- a/include/simgrid/msg.h +++ b/include/simgrid/msg.h @@ -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; diff --git a/src/msg/msg_private.hpp b/src/msg/msg_private.hpp index 01ec91afd3..0f2c008ea0 100644 --- a/src/msg/msg_private.hpp +++ b/src/msg/msg_private.hpp @@ -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 */ diff --git a/src/msg/msg_task.cpp b/src/msg/msg_task.cpp index c4ad363213..3f161238dc 100644 --- a/src/msg/msg_task.cpp +++ b/src/msg/msg_task.cpp @@ -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) +void* MSG_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.