From b372d23d3d8818b4547ef207f43b45709298a002 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Sun, 10 Jan 2021 13:59:38 +0100 Subject: [PATCH] Remove the actor of the on_{start/completion} parameters as it is always initialized to Actor::self() --- include/simgrid/s4u/Comm.hpp | 5 ++--- include/simgrid/s4u/Exec.hpp | 4 ++-- include/simgrid/s4u/Io.hpp | 4 ++-- src/instr/instr_platform.cpp | 31 ++++++++++++++------------- src/plugins/dirty_page_tracking.cpp | 4 ++-- src/plugins/host_dvfs.cpp | 4 ++-- src/plugins/host_energy.cpp | 2 +- src/plugins/host_load.cpp | 4 ++-- src/plugins/vm/VirtualMachineImpl.cpp | 4 ++-- src/s4u/s4u_Comm.cpp | 15 ++++++------- src/s4u/s4u_Exec.cpp | 8 +++---- src/s4u/s4u_Io.cpp | 8 +++---- 12 files changed, 46 insertions(+), 47 deletions(-) diff --git a/include/simgrid/s4u/Comm.hpp b/include/simgrid/s4u/Comm.hpp index d89f061c89..2c6be0f62b 100644 --- a/include/simgrid/s4u/Comm.hpp +++ b/include/simgrid/s4u/Comm.hpp @@ -42,9 +42,8 @@ public: ~Comm() override; - static xbt::signal on_sender_start; - static xbt::signal on_receiver_start; - static xbt::signal on_completion; + static xbt::signal on_start; + static xbt::signal on_completion; /*! take a vector s4u::CommPtr and return when one of them is finished. * The return value is the rank of the first finished CommPtr. */ diff --git a/include/simgrid/s4u/Exec.hpp b/include/simgrid/s4u/Exec.hpp index 38289a8b0e..d2a6a12ba3 100644 --- a/include/simgrid/s4u/Exec.hpp +++ b/include/simgrid/s4u/Exec.hpp @@ -46,8 +46,8 @@ public: Exec& operator=(Exec const&) = delete; #endif - static xbt::signal on_start; - static xbt::signal on_completion; + static xbt::signal on_start; + static xbt::signal on_completion; Exec* start() override; /** @brief On sequential executions, returns the amount of flops that remain to be done; This cannot be used on diff --git a/include/simgrid/s4u/Io.hpp b/include/simgrid/s4u/Io.hpp index f51282b326..854bee65c5 100644 --- a/include/simgrid/s4u/Io.hpp +++ b/include/simgrid/s4u/Io.hpp @@ -40,8 +40,8 @@ public: ~Io() override = default; #endif - static xbt::signal on_start; - static xbt::signal on_completion; + static xbt::signal on_start; + static xbt::signal on_completion; Io* start() override; Io* wait() override; diff --git a/src/instr/instr_platform.cpp b/src/instr/instr_platform.cpp index e9bb5c4472..c8936419b4 100644 --- a/src/instr/instr_platform.cpp +++ b/src/instr/instr_platform.cpp @@ -465,32 +465,33 @@ void define_callbacks() }); s4u::Actor::on_wake_up.connect( [](s4u::Actor const& actor) { Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->pop_event(); }); - s4u::Exec::on_start.connect([](s4u::Exec const&, simgrid::s4u::Actor const& actor) { - Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->push_event("execute"); + s4u::Exec::on_start.connect([](s4u::Exec const&) { + Container::by_name(instr_pid(*s4u::Actor::self()))->get_state("ACTOR_STATE")->push_event("execute"); }); - s4u::Exec::on_completion.connect([](s4u::Exec const&, s4u::Actor const& actor) { - Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->pop_event(); + s4u::Exec::on_completion.connect([](s4u::Exec const&) { + Container::by_name(instr_pid(*s4u::Actor::self()))->get_state("ACTOR_STATE")->pop_event(); }); - s4u::Comm::on_sender_start.connect([](s4u::Comm const&, s4u::Actor const& actor) { - Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->push_event("send"); + s4u::Comm::on_start.connect([](s4u::Comm const&, bool is_sender) { + Container::by_name(instr_pid(*s4u::Actor::self())) + ->get_state("ACTOR_STATE") + ->push_event(is_sender ? "send" : "receive"); }); - s4u::Comm::on_receiver_start.connect([](s4u::Comm const&, s4u::Actor const& actor) { - Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->push_event("receive"); - }); - s4u::Comm::on_completion.connect([](s4u::Comm const&, s4u::Actor const& actor) { - Container::by_name(instr_pid(actor))->get_state("ACTOR_STATE")->pop_event(); + s4u::Comm::on_completion.connect([](s4u::Comm const&) { + Container::by_name(instr_pid(*s4u::Actor::self()))->get_state("ACTOR_STATE")->pop_event(); }); s4u::Actor::on_host_change.connect(on_actor_host_change); } if (TRACE_smpi_is_enabled() && TRACE_smpi_is_computing()) { - s4u::Exec::on_start.connect([](s4u::Exec const& exec, simgrid::s4u::Actor const& actor) { - Container::by_name(std::string("rank-") + std::to_string(actor.get_pid())) + s4u::Exec::on_start.connect([](s4u::Exec const& exec) { + Container::by_name(std::string("rank-") + std::to_string(s4u::Actor::self()->get_pid())) ->get_state("MPI_STATE") ->push_event("computing", new CpuTIData("compute", exec.get_cost())); }); - s4u::Exec::on_completion.connect([](s4u::Exec const&, s4u::Actor const& actor) { - Container::by_name(std::string("rank-") + std::to_string(actor.get_pid()))->get_state("MPI_STATE")->pop_event(); + s4u::Exec::on_completion.connect([](s4u::Exec const&) { + Container::by_name(std::string("rank-") + std::to_string(s4u::Actor::self()->get_pid())) + ->get_state("MPI_STATE") + ->pop_event(); }); } diff --git a/src/plugins/dirty_page_tracking.cpp b/src/plugins/dirty_page_tracking.cpp index 9bed1db87d..5b3613ba89 100644 --- a/src/plugins/dirty_page_tracking.cpp +++ b/src/plugins/dirty_page_tracking.cpp @@ -73,7 +73,7 @@ static void on_virtual_machine_creation(simgrid::vm::VirtualMachineImpl& vm) vm.extension_set(new simgrid::vm::DirtyPageTrackingExt()); } -static void on_exec_creation(simgrid::s4u::Exec const& e, simgrid::s4u::Actor const&) +static void on_exec_creation(simgrid::s4u::Exec const& e) { auto exec = static_cast(e.get_impl()); const simgrid::s4u::VirtualMachine* vm = dynamic_cast(exec->get_host()); @@ -87,7 +87,7 @@ static void on_exec_creation(simgrid::s4u::Exec const& e, simgrid::s4u::Actor co } } -static void on_exec_completion(simgrid::s4u::Exec const& e, simgrid::s4u::Actor const&) +static void on_exec_completion(simgrid::s4u::Exec const& e) { auto exec = static_cast(e.get_impl()); const simgrid::s4u::VirtualMachine* vm = dynamic_cast(exec->get_host()); diff --git a/src/plugins/host_dvfs.cpp b/src/plugins/host_dvfs.cpp index edd21d2459..4378b2b5ee 100644 --- a/src/plugins/host_dvfs.cpp +++ b/src/plugins/host_dvfs.cpp @@ -295,11 +295,11 @@ public: task_id = 0; } }); - simgrid::s4u::Exec::on_start.connect([this](simgrid::s4u::Exec const& activity, simgrid::s4u::Actor const&) { + simgrid::s4u::Exec::on_start.connect([this](simgrid::s4u::Exec const& activity) { if (activity.get_host() == get_host()) pre_task(); }); - simgrid::s4u::Exec::on_completion.connect([this](simgrid::s4u::Exec const& activity, simgrid::s4u::Actor const&) { + simgrid::s4u::Exec::on_completion.connect([this](simgrid::s4u::Exec const& activity) { // For more than one host (not yet supported), we can access the host via // simcalls_.front()->issuer->get_iface()->get_host() if (activity.get_host() == get_host() && iteration_running) { diff --git a/src/plugins/host_energy.cpp b/src/plugins/host_energy.cpp index 06086cea63..a09a39f538 100644 --- a/src/plugins/host_energy.cpp +++ b/src/plugins/host_energy.cpp @@ -551,7 +551,7 @@ void sg_host_energy_plugin_init() // that the next trigger would be the 2nd compute, hence ignoring the idle time // during the recv call. By updating at the beginning of a compute, we can // fix that. (If the cpu is not idle, this is not required.) - simgrid::s4u::Exec::on_start.connect([](simgrid::s4u::Exec const& activity, simgrid::s4u::Actor const&) { + simgrid::s4u::Exec::on_start.connect([](simgrid::s4u::Exec const& activity) { if (activity.get_host_number() == 1) { // We only run on one host simgrid::s4u::Host* host = activity.get_host(); const simgrid::s4u::VirtualMachine* vm = dynamic_cast(host); diff --git a/src/plugins/host_load.cpp b/src/plugins/host_load.cpp index 4011e9871b..c8b03e53cb 100644 --- a/src/plugins/host_load.cpp +++ b/src/plugins/host_load.cpp @@ -231,7 +231,7 @@ void sg_host_load_plugin_init() host.extension_set(new HostLoad(&host)); }); - simgrid::s4u::Exec::on_start.connect([](simgrid::s4u::Exec const& activity, simgrid::s4u::Actor const&) { + simgrid::s4u::Exec::on_start.connect([](simgrid::s4u::Exec const& activity) { if (activity.get_host_number() == 1) { // We only run on one host simgrid::s4u::Host* host = activity.get_host(); const simgrid::s4u::VirtualMachine* vm = dynamic_cast(host); @@ -247,7 +247,7 @@ void sg_host_load_plugin_init() XBT_WARN("HostLoad plugin currently does not support executions on several hosts"); } }); - simgrid::s4u::Exec::on_completion.connect([](simgrid::s4u::Exec const& activity, simgrid::s4u::Actor const&) { + simgrid::s4u::Exec::on_completion.connect([](simgrid::s4u::Exec const& activity) { if (activity.get_host_number() == 1) { // We only run on one host simgrid::s4u::Host* host = activity.get_host(); const simgrid::s4u::VirtualMachine* vm = dynamic_cast(host); diff --git a/src/plugins/vm/VirtualMachineImpl.cpp b/src/plugins/vm/VirtualMachineImpl.cpp index 640d91d6a6..20a7dce251 100644 --- a/src/plugins/vm/VirtualMachineImpl.cpp +++ b/src/plugins/vm/VirtualMachineImpl.cpp @@ -55,7 +55,7 @@ static void host_state_change(s4u::Host const& host) } } -static void add_active_exec(s4u::Exec const& task, s4u::Actor const&) +static void add_active_exec(s4u::Exec const& task) { const s4u::VirtualMachine* vm = dynamic_cast(task.get_host()); if (vm != nullptr) { @@ -65,7 +65,7 @@ static void add_active_exec(s4u::Exec const& task, s4u::Actor const&) } } -static void remove_active_exec(s4u::Exec const& task, s4u::Actor const&) +static void remove_active_exec(s4u::Exec const& task) { const s4u::VirtualMachine* vm = dynamic_cast(task.get_host()); if (vm != nullptr) { diff --git a/src/s4u/s4u_Comm.cpp b/src/s4u/s4u_Comm.cpp index 7f77ab4238..55a79e5aa7 100644 --- a/src/s4u/s4u_Comm.cpp +++ b/src/s4u/s4u_Comm.cpp @@ -16,9 +16,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_comm, s4u_activity, "S4U asynchronous commun namespace simgrid { namespace s4u { -xbt::signal Comm::on_sender_start; -xbt::signal Comm::on_receiver_start; -xbt::signal Comm::on_completion; +xbt::signal Comm::on_start; +xbt::signal Comm::on_completion; Comm::~Comm() { @@ -119,12 +118,12 @@ Comm* Comm::start() "You cannot use %s() once your communication started (not implemented)", __FUNCTION__); if (src_buff_ != nullptr) { // Sender side - on_sender_start(*this, *Actor::self()); + on_start(*this, true /* is_sender*/); pimpl_ = simcall_comm_isend(sender_, mailbox_->get_impl(), remains_, rate_, src_buff_, src_buff_size_, match_fun_, clean_fun_, copy_data_function_, get_user_data(), detached_); } else if (dst_buff_ != nullptr) { // Receiver side xbt_assert(not detached_, "Receive cannot be detached"); - on_receiver_start(*this, *Actor::self()); + on_start(*this, false /*is_sender*/); pimpl_ = simcall_comm_irecv(receiver_, mailbox_->get_impl(), dst_buff_, &dst_buff_size_, match_fun_, copy_data_function_, get_user_data(), rate_); @@ -160,12 +159,12 @@ Comm* Comm::wait_for(double timeout) case State::INITED: case State::STARTING: // It's not started yet. Do it in one simcall if (src_buff_ != nullptr) { - on_sender_start(*this, *Actor::self()); + on_start(*this, true /*is_sender*/); simcall_comm_send(sender_, mailbox_->get_impl(), remains_, rate_, src_buff_, src_buff_size_, match_fun_, copy_data_function_, get_user_data(), timeout); } else { // Receiver - on_receiver_start(*this, *Actor::self()); + on_start(*this, false /*is_sender*/); simcall_comm_recv(receiver_, mailbox_->get_impl(), dst_buff_, &dst_buff_size_, match_fun_, copy_data_function_, get_user_data(), timeout, rate_); } @@ -185,7 +184,7 @@ Comm* Comm::wait_for(double timeout) default: THROW_IMPOSSIBLE; } - on_completion(*this, *Actor::self()); + on_completion(*this); return this; } diff --git a/src/s4u/s4u_Exec.cpp b/src/s4u/s4u_Exec.cpp index 704506ae16..9bbf840f50 100644 --- a/src/s4u/s4u_Exec.cpp +++ b/src/s4u/s4u_Exec.cpp @@ -14,8 +14,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_exec, s4u_activity, "S4U asynchronous execut namespace simgrid { namespace s4u { -xbt::signal Exec::on_start; -xbt::signal Exec::on_completion; +xbt::signal Exec::on_start; +xbt::signal Exec::on_completion; Exec::Exec() { @@ -35,7 +35,7 @@ Exec* Exec::wait_for(double timeout) kernel::actor::ActorImpl* issuer = Actor::self()->get_impl(); kernel::actor::simcall_blocking([this, issuer, timeout] { this->get_impl()->wait_for(issuer, timeout); }); state_ = State::FINISHED; - on_completion(*this, *Actor::self()); + on_completion(*this); this->release_dependencies(); return this; } @@ -185,7 +185,7 @@ Exec* Exec::start() pimpl_->suspend(); state_ = State::STARTED; - on_start(*this, *Actor::self()); + on_start(*this); return this; } diff --git a/src/s4u/s4u_Io.cpp b/src/s4u/s4u_Io.cpp index acd9a0df74..736336aed6 100644 --- a/src/s4u/s4u_Io.cpp +++ b/src/s4u/s4u_Io.cpp @@ -12,8 +12,8 @@ namespace simgrid { namespace s4u { -xbt::signal Io::on_start; -xbt::signal Io::on_completion; +xbt::signal Io::on_start; +xbt::signal Io::on_completion; Io::Io(sg_disk_t disk, sg_size_t size, OpType type) : disk_(disk), size_(size), type_(type) { @@ -51,7 +51,7 @@ Io* Io::start() pimpl_->suspend(); state_ = State::STARTED; - on_start(*this, *Actor::self()); + on_start(*this); return this; } @@ -77,7 +77,7 @@ Io* Io::wait_for(double timeout) state_ = State::FINISHED; this->release_dependencies(); - on_completion(*this, *Actor::self()); + on_completion(*this); return this; } -- 2.20.1