-/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2020. 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. */
std::function<void()> code_;
actor::ActorImpl* actor_ = nullptr;
+ bool iwannadie_ = false;
void declare_context(std::size_t size);
public:
- bool iwannadie = false;
-
Context(std::function<void()>&& code, actor::ActorImpl* actor);
Context(const Context&) = delete;
Context& operator=(const Context&) = delete;
virtual ~Context();
- void operator()() { code_(); }
+ bool wannadie() const { return iwannadie_; }
+ void set_wannadie(bool value = true) { iwannadie_ = value; }
+ void operator()() const { code_(); }
bool has_code() const { return static_cast<bool>(code_); }
- actor::ActorImpl* get_actor() { return this->actor_; }
+ actor::ActorImpl* get_actor() const { return this->actor_; }
// Scheduling methods
virtual void stop();
virtual void suspend() = 0;
// Retrieving the self() context
- /** @brief Retrives the current context of this thread */
+ /** @brief Retrieves the current context of this thread */
static Context* self();
/** @brief Sets the current context of this thread */
static void set_current(Context* self);
#ifndef WIN32
XBT_PUBLIC_DATA unsigned char sigsegv_stack[SIGSTKSZ];
#endif
-
-/** @brief Executes all the processes to run (in parallel if possible). */
-XBT_PRIVATE void SIMIX_context_runall();
-
-XBT_PUBLIC int SIMIX_process_get_maxpid();
-
-XBT_PRIVATE simgrid::simix::ActorCodeFactory& SIMIX_get_actor_code_factory(const std::string& name);
-
#endif