X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ed1eaf3f9c7448d57b320a37ddffc60fb1709420..5afd75483d80ccf2c678e50f82613b3556c7ca97:/src/simix/libsmx.cpp diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index 41bb5b9b6c..2744ea4336 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -18,13 +18,17 @@ #include "src/kernel/activity/MailboxImpl.hpp" #include "src/kernel/activity/MutexImpl.hpp" #include "src/kernel/activity/SemaphoreImpl.hpp" -#include "src/mc/checker/SimcallObserver.hpp" +#include "src/kernel/actor/SimcallObserver.hpp" #include "src/mc/mc_replay.hpp" #include "src/plugins/vm/VirtualMachineImpl.hpp" #include "xbt/random.hpp" #include "popping_bodies.cpp" +#include +#include +#include + /** * @ingroup simix_host_management * @brief Waits for the completion of an execution synchro and destroy it. @@ -60,9 +64,9 @@ bool simcall_execution_test(const simgrid::kernel::activity::ActivityImplPtr& ex unsigned int simcall_execution_waitany_for(simgrid::kernel::activity::ExecImpl* execs[], size_t count, double timeout) // XBT_ATTRIB_DEPRECATED_v331 { - std::vector execsv(execs, execs + count); + std::vector execs_vec(execs, execs + count); simgrid::kernel::actor::ActorImpl* issuer = simgrid::kernel::actor::ActorImpl::self(); - simgrid::mc::ExecutionWaitanySimcall observer{issuer, &execsv, timeout}; + simgrid::kernel::actor::ExecutionWaitanySimcall observer{issuer, execs_vec, timeout}; return simgrid::kernel::actor::simcall_blocking( [&observer] { simgrid::kernel::activity::ExecImpl::wait_any_for(observer.get_issuer(), observer.get_execs(), @@ -71,16 +75,6 @@ unsigned int simcall_execution_waitany_for(simgrid::kernel::activity::ExecImpl* &observer); } -void simcall_process_join(smx_actor_t process, double timeout) // XBT_ATTRIB_DEPRECATED_v328 -{ - simgrid::kernel::actor::ActorImpl::self()->join(process, timeout); -} - -void simcall_process_suspend(smx_actor_t process) // XBT_ATTRIB_DEPRECATED_v328 -{ - process->get_iface()->suspend(); -} - simgrid::kernel::activity::State simcall_process_sleep(double duration) // XBT_ATTRIB_DEPRECATED_v329 { simgrid::kernel::actor::ActorImpl::self()->sleep(duration); @@ -357,14 +351,14 @@ bool simcall_io_test(const simgrid::kernel::activity::ActivityImplPtr& io) // XB return simgrid::kernel::actor::simcall([io] { return io->test(); }); } -void simcall_run_kernel(std::function const& code, simgrid::mc::SimcallObserver* observer) +void simcall_run_kernel(std::function const& code, simgrid::kernel::actor::SimcallObserver* observer) { simgrid::kernel::actor::ActorImpl::self()->simcall_.observer_ = observer; simcall_BODY_run_kernel(&code); simgrid::kernel::actor::ActorImpl::self()->simcall_.observer_ = nullptr; } -void simcall_run_blocking(std::function const& code, simgrid::mc::SimcallObserver* observer) +void simcall_run_blocking(std::function const& code, simgrid::kernel::actor::SimcallObserver* observer) { simgrid::kernel::actor::ActorImpl::self()->simcall_.observer_ = observer; simcall_BODY_run_blocking(&code); @@ -379,9 +373,18 @@ int simcall_mc_random(int min, int max) // XBT_ATTRIB_DEPRECATD_v331 /* ************************************************************************** */ /** @brief returns a printable string representing a simcall */ -const char* SIMIX_simcall_name(Simcall kind) -{ - return simcall_names[static_cast(kind)]; +const char* SIMIX_simcall_name(const s_smx_simcall& simcall) +{ + if (simcall.observer_ != nullptr) { + static std::string name; + name = boost::core::demangle(typeid(*simcall.observer_).name()); + const char* cname = name.c_str(); + if (name.rfind("simgrid::kernel::", 0) == 0) + cname += 17; // strip prefix "simgrid::kernel::" + return cname; + } else { + return simcall_names[static_cast(simcall.call_)]; + } } namespace simgrid {