X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/992c3a8621f205aedc022a0d5a5d3fc7bb75e6a1..989e6d7e4cb105760aff9acce9ac2d26de2f793d:/src/kernel/actor/ActorImpl.hpp diff --git a/src/kernel/actor/ActorImpl.hpp b/src/kernel/actor/ActorImpl.hpp index d822f6df1c..69741aceee 100644 --- a/src/kernel/actor/ActorImpl.hpp +++ b/src/kernel/actor/ActorImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2023. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -9,33 +9,38 @@ #include "Simcall.hpp" #include "simgrid/kernel/Timer.hpp" #include "simgrid/s4u/Actor.hpp" +#include "src/kernel/actor/Simcall.hpp" #include "xbt/PropertyHolder.hpp" + +#include #include #include #include #include +#include +#include #include -namespace simgrid { -namespace kernel { -namespace actor { +namespace simgrid::kernel::actor { class ProcessArg; /*------------------------- [ ActorIDTrait ] -------------------------*/ class XBT_PUBLIC ActorIDTrait { - xbt::string name_; - aid_t pid_ = 0; - aid_t ppid_ = -1; + std::string name_; + aid_t pid_ = 0; + aid_t ppid_ = -1; + + static unsigned long maxpid_; public: explicit ActorIDTrait(const std::string& name, aid_t ppid); - const xbt::string& get_name() const { return name_; } + const std::string& get_name() const { return name_; } const char* get_cname() const { return name_.c_str(); } aid_t get_pid() const { return pid_; } aid_t get_ppid() const { return ppid_; } + + static unsigned long get_maxpid() { return maxpid_; } }; -XBT_PUBLIC unsigned long get_maxpid(); -XBT_PUBLIC unsigned long* get_maxpid_addr(); // In MC mode, the application sends this pointers to the MC /*------------------------- [ ActorRestartingTrait ] -------------------------*/ class XBT_PUBLIC ActorRestartingTrait { @@ -62,7 +67,7 @@ class XBT_PUBLIC ActorImpl : public xbt::PropertyHolder, public ActorIDTrait, pu friend activity::MailboxImpl; public: - ActorImpl(xbt::string name, s4u::Host* host, aid_t ppid); + ActorImpl(const std::string& name, s4u::Host* host, aid_t ppid); ActorImpl(const ActorImpl&) = delete; ActorImpl& operator=(const ActorImpl&) = delete; ~ActorImpl(); @@ -100,7 +105,7 @@ public: bool suspended_ = false; activity::ActivityImplPtr waiting_synchro_ = nullptr; /* the current blocking synchro if any */ - std::list activities_; /* the current non-blocking synchros */ + std::set activities_; /* the current non-blocking synchros */ Simcall simcall_; /* list of functions executed when the actor dies */ std::shared_ptr>> on_exit = @@ -231,8 +236,6 @@ using SynchroList = XBT_PUBLIC void create_maestro(const std::function& code); -} // namespace actor -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::actor #endif