From 29ce6b3ff37cf7b49884614f368870292b62aa38 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Mon, 18 Dec 2017 22:44:28 +0100 Subject: [PATCH] add some signals will be needed to handle dirty pages in a plugin add exec->getHost() too --- include/simgrid/s4u/Exec.hpp | 1 + include/simgrid/s4u/VirtualMachine.hpp | 3 +++ src/kernel/activity/ExecImpl.cpp | 6 ++++++ src/kernel/activity/ExecImpl.hpp | 5 ++++- src/plugins/vm/s4u_VirtualMachine.cpp | 6 ++++++ 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/include/simgrid/s4u/Exec.hpp b/include/simgrid/s4u/Exec.hpp index 4c7b4b3355..a90e5cc16d 100644 --- a/include/simgrid/s4u/Exec.hpp +++ b/include/simgrid/s4u/Exec.hpp @@ -32,6 +32,7 @@ public: ExecPtr setPriority(double priority); ExecPtr setHost(Host * host); + Host* getHost() { return host_; } double getRemains() override; double getRemainingRatio(); diff --git a/include/simgrid/s4u/VirtualMachine.hpp b/include/simgrid/s4u/VirtualMachine.hpp index a655e4905e..8dcfe49f42 100644 --- a/include/simgrid/s4u/VirtualMachine.hpp +++ b/include/simgrid/s4u/VirtualMachine.hpp @@ -63,6 +63,9 @@ public: /* FIXME: protect me */ simgrid::vm::VirtualMachineImpl* pimpl_vm_ = nullptr; + + static simgrid::xbt::signal onCreation; + static simgrid::xbt::signal onDestruction; }; } } // namespace simgrid::s4u diff --git a/src/kernel/activity/ExecImpl.cpp b/src/kernel/activity/ExecImpl.cpp index 6c0cf00c58..89bcbe3f0e 100644 --- a/src/kernel/activity/ExecImpl.cpp +++ b/src/kernel/activity/ExecImpl.cpp @@ -85,3 +85,9 @@ void simgrid::kernel::activity::ExecImpl::post() if (not simcalls.empty()) SIMIX_execution_finish(this); } + +/************* + * Callbacks * + *************/ +simgrid::xbt::signal simgrid::kernel::activity::ExecImpl::onCreation; +simgrid::xbt::signal simgrid::kernel::activity::ExecImpl::onDestruction; diff --git a/src/kernel/activity/ExecImpl.hpp b/src/kernel/activity/ExecImpl.hpp index e5fe71bb6e..317d93c6a2 100644 --- a/src/kernel/activity/ExecImpl.hpp +++ b/src/kernel/activity/ExecImpl.hpp @@ -8,12 +8,13 @@ #include "src/kernel/activity/ActivityImpl.hpp" #include "surf/surf.hpp" +#include "xbt/Extendable.hpp" namespace simgrid { namespace kernel { namespace activity { -XBT_PUBLIC_CLASS ExecImpl : public ActivityImpl +XBT_PUBLIC_CLASS ExecImpl : public ActivityImpl, public simgrid::xbt::Extendable { ~ExecImpl() override; @@ -30,6 +31,8 @@ public: sg_host_t host_ = nullptr; surf_action_t surfAction_ = nullptr; /* The Surf execution action encapsulated */ surf::Action* timeoutDetector = nullptr; + static simgrid::xbt::signal onCreation; + static simgrid::xbt::signal onDestruction; }; } } diff --git a/src/plugins/vm/s4u_VirtualMachine.cpp b/src/plugins/vm/s4u_VirtualMachine.cpp index 3ee05b2aae..a4f2022443 100644 --- a/src/plugins/vm/s4u_VirtualMachine.cpp +++ b/src/plugins/vm/s4u_VirtualMachine.cpp @@ -176,5 +176,11 @@ void VirtualMachine::setParameters(vm_params_t params) simgrid::simix::kernelImmediate([this, params] { pimpl_vm_->setParams(params); }); } +/************* + * Callbacks * + *************/ +simgrid::xbt::signal VirtualMachine::onCreation; +simgrid::xbt::signal VirtualMachine::onDestruction; + } // namespace simgrid } // namespace s4u -- 2.20.1