Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
tracking works better if signals are triggered
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 19 Dec 2017 18:06:52 +0000 (19:06 +0100)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 19 Dec 2017 18:06:52 +0000 (19:06 +0100)
src/kernel/activity/ExecImpl.cpp
src/kernel/activity/ExecImpl.hpp
src/simix/smx_host.cpp
src/surf/plugins/dirty_page_tracking.cpp

index 89bcbe3..0484cc7 100644 (file)
@@ -81,6 +81,7 @@ void simgrid::kernel::activity::ExecImpl::post()
     timeoutDetector = nullptr;
   }
 
     timeoutDetector = nullptr;
   }
 
+  onCompletion(this);
   /* If there are simcalls associated with the synchro, then answer them */
   if (not simcalls.empty())
     SIMIX_execution_finish(this);
   /* If there are simcalls associated with the synchro, then answer them */
   if (not simcalls.empty())
     SIMIX_execution_finish(this);
@@ -90,4 +91,4 @@ void simgrid::kernel::activity::ExecImpl::post()
  * Callbacks *
  *************/
 simgrid::xbt::signal<void(simgrid::kernel::activity::ExecImplPtr)> simgrid::kernel::activity::ExecImpl::onCreation;
  * Callbacks *
  *************/
 simgrid::xbt::signal<void(simgrid::kernel::activity::ExecImplPtr)> simgrid::kernel::activity::ExecImpl::onCreation;
-simgrid::xbt::signal<void(simgrid::kernel::activity::ExecImplPtr)> simgrid::kernel::activity::ExecImpl::onDestruction;
+simgrid::xbt::signal<void(simgrid::kernel::activity::ExecImplPtr)> simgrid::kernel::activity::ExecImpl::onCompletion;
index 4e68dc4..f71e3cc 100644 (file)
@@ -31,7 +31,7 @@ public:
   surf_action_t surfAction_     = nullptr; /* The Surf execution action encapsulated */
   surf::Action* timeoutDetector = nullptr;
   static simgrid::xbt::signal<void(kernel::activity::ExecImplPtr)> onCreation;
   surf_action_t surfAction_     = nullptr; /* The Surf execution action encapsulated */
   surf::Action* timeoutDetector = nullptr;
   static simgrid::xbt::signal<void(kernel::activity::ExecImplPtr)> onCreation;
-  static simgrid::xbt::signal<void(kernel::activity::ExecImplPtr)> onDestruction;
+  static simgrid::xbt::signal<void(kernel::activity::ExecImplPtr)> onCompletion;
 };
 }
 }
 };
 }
 }
index 3866717..ed49843 100644 (file)
@@ -165,6 +165,7 @@ SIMIX_execution_start(const char* name, double flops_amount, double priority, do
   }
 
   XBT_DEBUG("Create execute synchro %p: %s", exec.get(), exec->name.c_str());
   }
 
   XBT_DEBUG("Create execute synchro %p: %s", exec.get(), exec->name.c_str());
+  simgrid::kernel::activity::ExecImpl::onCreation(exec);
 
   return exec;
 }
 
   return exec;
 }
index e923f55..329f123 100644 (file)
@@ -74,7 +74,7 @@ static void onExecCreation(simgrid::kernel::activity::ExecImplPtr exec)
   }
 }
 
   }
 }
 
-static void onExecDestruction(simgrid::kernel::activity::ExecImplPtr exec)
+static void onExecCompletion(simgrid::kernel::activity::ExecImplPtr exec)
 {
   simgrid::s4u::VirtualMachine* vm = dynamic_cast<simgrid::s4u::VirtualMachine*>(exec->host_);
   if (vm == nullptr)
 {
   simgrid::s4u::VirtualMachine* vm = dynamic_cast<simgrid::s4u::VirtualMachine*>(exec->host_);
   if (vm == nullptr)
@@ -99,7 +99,7 @@ void sg_vm_live_migration_plugin_init()
         simgrid::vm::VirtualMachineImpl::extension_create<simgrid::vm::VmDirtyPageTrackingExt>();
     simgrid::vm::VirtualMachineImpl::onVmCreation.connect(&onVirtualMachineCreation);
     simgrid::kernel::activity::ExecImpl::onCreation.connect(&onExecCreation);
         simgrid::vm::VirtualMachineImpl::extension_create<simgrid::vm::VmDirtyPageTrackingExt>();
     simgrid::vm::VirtualMachineImpl::onVmCreation.connect(&onVirtualMachineCreation);
     simgrid::kernel::activity::ExecImpl::onCreation.connect(&onExecCreation);
-    simgrid::kernel::activity::ExecImpl::onDestruction.connect(&onExecDestruction);
+    simgrid::kernel::activity::ExecImpl::onCompletion.connect(&onExecCompletion);
   }
 }
 
   }
 }