X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/852c24f4be68f06bedf43688364f770e9319f3a0..HEAD:/src/kernel/context/ContextThread.hpp diff --git a/src/kernel/context/ContextThread.hpp b/src/kernel/context/ContextThread.hpp index df885d631b..cb578d7e63 100644 --- a/src/kernel/context/ContextThread.hpp +++ b/src/kernel/context/ContextThread.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2009-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. */ @@ -14,9 +14,7 @@ #include -namespace simgrid { -namespace kernel { -namespace context { +namespace simgrid::kernel::context { class XBT_PUBLIC ThreadContext : public AttachContext { public: @@ -24,12 +22,10 @@ public: ThreadContext(const ThreadContext&) = delete; ThreadContext& operator=(const ThreadContext&) = delete; ~ThreadContext() override; - void stop() override; void suspend() override; void attach_start() override; void attach_stop() override; - bool is_maestro() const { return is_maestro_; } void release(); // unblock context's start() void wait(); // wait for context's yield() @@ -40,13 +36,11 @@ private: xbt::OsSemaphore begin_{0}; /** Semaphore used to schedule/unschedule (not needed when the maestro is in main, but harmless then) */ xbt::OsSemaphore end_{0}; - bool is_maestro_; void start(); // match a call to release() void yield(); // match a call to yield() - virtual void start_hook() { /* empty placeholder, called after start(). Used in parallel mode and Java */} + virtual void start_hook() { /* empty placeholder, called after start(). Used in parallel mode */} virtual void yield_hook() { /* empty placeholder, called before yield(). Used in parallel mode */} - virtual void stop_hook() { /* empty placeholder, called at stop(). Used in Java */} static void wrapper(ThreadContext* context); }; @@ -58,7 +52,7 @@ public: { } - static void run_all(); + static void run_all(std::vector const& actors_list); }; class ParallelThreadContext : public ThreadContext { @@ -70,7 +64,7 @@ public: static void initialize(); static void finalize(); - static void run_all(); + static void run_all(std::vector const& actors_list); private: static xbt::OsSemaphore* thread_sem_; @@ -90,7 +84,7 @@ public: bool maestro = not code; return create_context(std::move(code), actor, maestro); } - void run_all() override; + void run_all(std::vector const& actors) override; // Optional methods: ThreadContext* attach(actor::ActorImpl* actor) override @@ -105,8 +99,6 @@ public: private: ThreadContext* create_context(std::function&& code, actor::ActorImpl* actor, bool maestro); }; -} // namespace context -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::context #endif