Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
move MutexImpl to the right namespace
[simgrid.git] / src / simix / libsmx.cpp
index d774d3c..61d57bc 100644 (file)
@@ -20,6 +20,7 @@
 #include "simgrid/simix/blocking_simcall.hpp"
 #include "smx_private.hpp"
 #include "src/kernel/activity/CommImpl.hpp"
+#include "src/kernel/activity/MutexImpl.hpp"
 #include "src/mc/mc_forward.hpp"
 #include "src/mc/mc_replay.hpp"
 #include "src/plugins/vm/VirtualMachineImpl.hpp"
@@ -55,15 +56,14 @@ void simcall_call(smx_actor_t actor)
  * \param bound
  * \return A new SIMIX execution synchronization
  */
-smx_activity_t simcall_execution_start(const char *name,
-                                    double flops_amount,
-                                    double priority, double bound)
+smx_activity_t simcall_execution_start(const char* name, double flops_amount, double priority, double bound,
+                                       simgrid::s4u::Host* host)
 {
   /* checking for infinite values */
   xbt_assert(std::isfinite(flops_amount), "flops_amount is not finite!");
   xbt_assert(std::isfinite(priority), "priority is not finite!");
 
-  return simcall_BODY_execution_start(name, flops_amount, priority, bound);
+  return simcall_BODY_execution_start(name, flops_amount, priority, bound, host);
 }
 
 /**
@@ -112,12 +112,12 @@ void simcall_execution_cancel(smx_activity_t execution)
 {
   simgrid::kernel::activity::ExecImplPtr exec =
       boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(execution);
-  if (not exec->surf_exec)
+  if (not exec->surfAction_)
     return;
   simgrid::simix::kernelImmediate([exec] {
     XBT_DEBUG("Cancel synchro %p", exec.get());
-    if (exec->surf_exec)
-      exec->surf_exec->cancel();
+    if (exec->surfAction_)
+      exec->surfAction_->cancel();
   });
 }
 
@@ -137,8 +137,8 @@ void simcall_execution_set_priority(smx_activity_t execution, double priority)
 
     simgrid::kernel::activity::ExecImplPtr exec =
         boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(execution);
-    if (exec->surf_exec)
-      exec->surf_exec->setSharingWeight(priority);
+    if (exec->surfAction_)
+      exec->surfAction_->setSharingWeight(priority);
   });
 }
 
@@ -155,8 +155,8 @@ void simcall_execution_set_bound(smx_activity_t execution, double bound)
   simgrid::simix::kernelImmediate([execution, bound] {
     simgrid::kernel::activity::ExecImplPtr exec =
         boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(execution);
-    if (exec->surf_exec)
-      static_cast<simgrid::surf::CpuAction*>(exec->surf_exec)->setBound(bound);
+    if (exec->surfAction_)
+      exec->surfAction_->setBound(bound);
   });
 }
 
@@ -171,6 +171,11 @@ e_smx_state_t simcall_execution_wait(smx_activity_t execution)
   return (e_smx_state_t) simcall_BODY_execution_wait(execution);
 }
 
+e_smx_state_t simcall_execution_test(smx_activity_t execution)
+{
+  return (e_smx_state_t)simcall_BODY_execution_test(execution);
+}
+
 /**
  * \ingroup simix_process_management
  * \brief Kills all SIMIX processes.
@@ -445,7 +450,7 @@ smx_mutex_t simcall_mutex_init()
     fprintf(stderr,"You must run MSG_init before using MSG\n"); // We can't use xbt_die since we may get there before the initialization
     xbt_abort();
   }
-  return simgrid::simix::kernelImmediate([] { return new simgrid::simix::MutexImpl(); });
+  return simgrid::simix::kernelImmediate([] { return new simgrid::kernel::activity::MutexImpl(); });
 }
 
 /**