Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
get rid fo SIMIX_simcall_exit
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 5 Apr 2019 09:35:20 +0000 (11:35 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 5 Apr 2019 09:35:20 +0000 (11:35 +0200)
src/simix/popping.cpp
src/simix/popping_private.hpp
src/simix/smx_global.cpp

index c482ab8..21a1331 100644 (file)
@@ -22,12 +22,6 @@ void SIMIX_simcall_answer(smx_simcall_t simcall)
   }
 }
 
-void SIMIX_simcall_exit(smx_activity_t activity)
-{
-  if (activity != nullptr) // When migrating, the surf activity is disconnected from its simix activity before cancel
-    activity->post();
-}
-
 void SIMIX_run_kernel(std::function<void()> const* code)
 {
   (*code)();
@@ -35,7 +29,7 @@ void SIMIX_run_kernel(std::function<void()> const* code)
 
 /** Kernel code for run_blocking
  *
- * The implementtion looks a lot like SIMIX_run_kernel ^^
+ * The implementation looks a lot like SIMIX_run_kernel ^^
  *
  * However, this `run_blocking` is blocking so the process will not be woken
  * up until `SIMIX_simcall_answer(simcall)`` is called by the kernel.
index b6a60d9..be180ac 100644 (file)
@@ -58,7 +58,6 @@ struct s_smx_simcall {
 
 XBT_PRIVATE void SIMIX_simcall_answer(smx_simcall_t simcall);
 XBT_PRIVATE void SIMIX_simcall_handle(smx_simcall_t simcall, int value);
-XBT_PRIVATE void SIMIX_simcall_exit(smx_activity_t synchro);
 XBT_PRIVATE const char* SIMIX_simcall_name(e_smx_simcall_t kind);
 XBT_PRIVATE void SIMIX_run_kernel(std::function<void()> const* code);
 XBT_PRIVATE void SIMIX_run_blocking(std::function<void()> const* code);
index bcca356..d47121d 100644 (file)
@@ -313,7 +313,8 @@ static void SIMIX_wake_processes()
     XBT_DEBUG("Handling the processes whose action failed (if any)");
     while ((action = model->extract_failed_action())) {
       XBT_DEBUG("   Handling Action %p",action);
-      SIMIX_simcall_exit(action->get_activity());
+      if (action->get_activity() != nullptr)
+        simgrid::kernel::activity::ActivityImplPtr(action->get_activity())->post();
     }
     XBT_DEBUG("Handling the processes whose action terminated normally (if any)");
     while ((action = model->extract_done_action())) {
@@ -321,7 +322,7 @@ static void SIMIX_wake_processes()
       if (action->get_activity() == nullptr)
         XBT_DEBUG("probably vcpu's action %p, skip", action);
       else
-        SIMIX_simcall_exit(action->get_activity());
+        simgrid::kernel::activity::ActivityImplPtr(action->get_activity())->post();
     }
   }
 }