Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 26 Jul 2018 07:09:02 +0000 (09:09 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Thu, 26 Jul 2018 07:09:02 +0000 (09:09 +0200)
src/s4u/s4u_Host.cpp
src/simix/smx_host.cpp
src/simix/smx_host_private.hpp

index 77ab45f..8e5edcb 100644 (file)
@@ -4,8 +4,9 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "simgrid/kernel/routing/NetPoint.hpp"
+#include "simgrid/s4u/Actor.hpp"
 #include "simgrid/s4u/Engine.hpp"
-#include "src/simix/smx_host_private.hpp"
+#include "simgrid/s4u/Exec.hpp"
 #include "src/surf/HostImpl.hpp"
 
 #include <string>
@@ -289,8 +290,7 @@ void Host::execute(double flops)
 }
 void Host::execute(double flops, double priority)
 {
-  smx_activity_t s = simcall_execution_start("", "", flops, 1 / priority /*priority*/, 0. /*bound*/, this);
-  simcall_execution_wait(s);
+  this_actor::exec_init(flops)->set_host(this)->set_priority(1 / priority)->start()->wait();
 }
 
 } // namespace s4u
index 91da469..d814cd7 100644 (file)
@@ -60,9 +60,9 @@ void SIMIX_host_autorestart(sg_host_t host)
   process_list.clear();
 }
 
-boost::intrusive_ptr<simgrid::kernel::activity::ExecImpl> SIMIX_execution_start(std::string name, std::string category,
-                                                                                double flops_amount, double priority,
-                                                                                double bound, sg_host_t host)
+simgrid::kernel::activity::ExecImplPtr SIMIX_execution_start(std::string name, std::string category,
+                                                             double flops_amount, double priority, double bound,
+                                                             sg_host_t host)
 {
   /* set surf's action */
   simgrid::kernel::resource::Action* surf_action = nullptr;
@@ -70,7 +70,7 @@ boost::intrusive_ptr<simgrid::kernel::activity::ExecImpl> SIMIX_execution_start(
     surf_action = host->pimpl_cpu->execution_start(flops_amount);
     surf_action->set_priority(priority);
     if (bound > 0)
-      static_cast<simgrid::surf::CpuAction*>(surf_action)->set_bound(bound);
+      surf_action->set_bound(bound);
   }
 
   simgrid::kernel::activity::ExecImplPtr exec = simgrid::kernel::activity::ExecImplPtr(
@@ -83,9 +83,9 @@ boost::intrusive_ptr<simgrid::kernel::activity::ExecImpl> SIMIX_execution_start(
   return exec;
 }
 
-boost::intrusive_ptr<simgrid::kernel::activity::ExecImpl>
-SIMIX_execution_parallel_start(std::string name, int host_nb, sg_host_t* host_list, double* flops_amount,
-                               double* bytes_amount, double rate, double timeout)
+simgrid::kernel::activity::ExecImplPtr SIMIX_execution_parallel_start(std::string name, int host_nb,
+                                                                      sg_host_t* host_list, double* flops_amount,
+                                                                      double* bytes_amount, double rate, double timeout)
 {
 
   /* Check that we are not mixing VMs and PMs in the parallel task */
index 22aec6d..fe4c5dc 100644 (file)
@@ -17,10 +17,10 @@ XBT_PRIVATE void SIMIX_execution_finish(smx_activity_t synchro);
 
 XBT_PRIVATE void SIMIX_set_category(smx_activity_t synchro, std::string category);
 
-XBT_PRIVATE boost::intrusive_ptr<simgrid::kernel::activity::ExecImpl>
-SIMIX_execution_start(std::string name, std::string category, double flops_amount, double priority, double bound,
-                      sg_host_t host);
-XBT_PRIVATE boost::intrusive_ptr<simgrid::kernel::activity::ExecImpl>
+XBT_PRIVATE simgrid::kernel::activity::ExecImplPtr SIMIX_execution_start(std::string name, std::string category,
+                                                                         double flops_amount, double priority,
+                                                                         double bound, sg_host_t host);
+XBT_PRIVATE simgrid::kernel::activity::ExecImplPtr
 SIMIX_execution_parallel_start(std::string name, int host_nb, sg_host_t* host_list, double* flops_amount,
                                double* bytes_amount, double rate, double timeout);