From: Frederic Suter Date: Thu, 26 Jul 2018 08:22:49 +0000 (+0200) Subject: Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid X-Git-Tag: v3_21~355^2~24 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/f1b9a69521aa116f619cdbd75779899775b31be3?hp=7564beb4fb2fc48f56cebe5106ca70998c03f854 Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid --- diff --git a/examples/s4u/platform-failures/s4u-platform-failures.cpp b/examples/s4u/platform-failures/s4u-platform-failures.cpp index e62f6ed8db..941ea2aba8 100644 --- a/examples/s4u/platform-failures/s4u-platform-failures.cpp +++ b/examples/s4u/platform-failures/s4u-platform-failures.cpp @@ -108,13 +108,11 @@ static int worker(int argc, char* argv[]) try { simgrid::s4u::this_actor::execute(comp_size); } catch (xbt_ex& e) { - switch (e.category) { - case host_error: - XBT_INFO("Gloups. The cpu on which I'm running just turned off!. See you!"); - return -1; - default: - xbt_die("Unexpected behavior"); - } + if (e.category == host_error) { + XBT_INFO("Gloups. The cpu on which I'm running just turned off!. See you!"); + return -1; + } else + xbt_die("Unexpected behavior"); } } XBT_INFO("I'm done. See you!"); diff --git a/src/s4u/s4u_Host.cpp b/src/s4u/s4u_Host.cpp index 77ab45f7a5..8e5edcbecd 100644 --- a/src/s4u/s4u_Host.cpp +++ b/src/s4u/s4u_Host.cpp @@ -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 @@ -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 diff --git a/src/simix/smx_host.cpp b/src/simix/smx_host.cpp index 91da469fe9..05dc306c6f 100644 --- a/src/simix/smx_host.cpp +++ b/src/simix/smx_host.cpp @@ -60,9 +60,9 @@ void SIMIX_host_autorestart(sg_host_t host) process_list.clear(); } -boost::intrusive_ptr 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,22 +70,22 @@ boost::intrusive_ptr SIMIX_execution_start( surf_action = host->pimpl_cpu->execution_start(flops_amount); surf_action->set_priority(priority); if (bound > 0) - static_cast(surf_action)->set_bound(bound); + surf_action->set_bound(bound); } simgrid::kernel::activity::ExecImplPtr exec = simgrid::kernel::activity::ExecImplPtr( new simgrid::kernel::activity::ExecImpl(name, surf_action, /*timeout_detector*/ nullptr, host)); - exec->set_category(name); + exec->set_category(category); XBT_DEBUG("Create execute synchro %p: %s", exec.get(), exec->name_.c_str()); simgrid::kernel::activity::ExecImpl::on_creation(exec); return exec; } -boost::intrusive_ptr -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 */ diff --git a/src/simix/smx_host_private.hpp b/src/simix/smx_host_private.hpp index 22aec6d730..fe4c5dcdc3 100644 --- a/src/simix/smx_host_private.hpp +++ b/src/simix/smx_host_private.hpp @@ -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 -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 +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);