From ee5b5b744dece350df0ef54d2b526754cbeaeb8d Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Mon, 8 Apr 2019 15:02:21 +0200 Subject: [PATCH] Simplify deprecated function. --- src/kernel/actor/ActorImpl.cpp | 49 +++------------------------------- src/simix/smx_private.hpp | 12 --------- 2 files changed, 4 insertions(+), 57 deletions(-) diff --git a/src/kernel/actor/ActorImpl.cpp b/src/kernel/actor/ActorImpl.cpp index 636f054f17..cce43fc715 100644 --- a/src/kernel/actor/ActorImpl.cpp +++ b/src/kernel/actor/ActorImpl.cpp @@ -530,51 +530,10 @@ smx_actor_t SIMIX_process_attach(const char* name, void* data, const char* hostn * transition */ void SIMIX_process_throw(smx_actor_t actor, xbt_errcat_t cat, int value, const char* msg) { - SMX_EXCEPTION(actor, cat, value, msg); - - if (actor->is_suspended()) - actor->resume(); - - /* cancel the blocking synchro if any */ - if (actor->waiting_synchro) { - - simgrid::kernel::activity::ExecImplPtr exec = - boost::dynamic_pointer_cast(actor->waiting_synchro); - if (exec != nullptr) - exec->cancel(); - - simgrid::kernel::activity::CommImplPtr comm = - boost::dynamic_pointer_cast(actor->waiting_synchro); - if (comm != nullptr) { - actor->comms.remove(comm); - comm->cancel(); - } - - simgrid::kernel::activity::SleepImplPtr sleep = - boost::dynamic_pointer_cast(actor->waiting_synchro); - if (sleep != nullptr) { - sleep->clean_action(); - if (std::find(begin(simix_global->actors_to_run), end(simix_global->actors_to_run), actor) == - end(simix_global->actors_to_run) && - actor != SIMIX_process_self()) { - XBT_DEBUG("Inserting [%p] %s in the to_run list", actor, actor->get_cname()); - simix_global->actors_to_run.push_back(actor); - } - } - - simgrid::kernel::activity::RawImplPtr raw = - boost::dynamic_pointer_cast(actor->waiting_synchro); - if (raw != nullptr) { - raw->finish(); - } - - simgrid::kernel::activity::IoImplPtr io = - boost::dynamic_pointer_cast(actor->waiting_synchro); - if (io != nullptr) { - io->cancel(); - } - } - actor->waiting_synchro = nullptr; + xbt_ex e(XBT_THROW_POINT, msg); + e.category = cat; + e.value = value; + actor->throw_exception(std::make_exception_ptr(e)); } void simcall_HANDLER_process_suspend(smx_simcall_t simcall, smx_actor_t actor) diff --git a/src/simix/smx_private.hpp b/src/simix/smx_private.hpp index c26de3558a..26893347ab 100644 --- a/src/simix/smx_private.hpp +++ b/src/simix/smx_private.hpp @@ -75,16 +75,4 @@ XBT_PUBLIC_DATA std::unique_ptr simix_global; XBT_PUBLIC void SIMIX_clean(); -/******************************** Exceptions *********************************/ -/** @brief Ask to the provided ActorImpl to raise the provided exception */ -#define SMX_EXCEPTION(issuer, cat, val, msg) \ - if (1) { \ - simgrid::kernel::actor::ActorImpl* _smx_throw_issuer = (issuer); /* evaluate only once */ \ - xbt_ex e(XBT_THROW_POINT, msg); \ - e.category = cat; \ - e.value = val; \ - _smx_throw_issuer->exception_ = std::make_exception_ptr(e); \ - } else \ - ((void)0) - #endif -- 2.20.1