SimGrid
3.14.159
Versatile Simulation of Distributed Systems
|
Userspace context switching implementation based on Boost.Context.
#include <ContextBoost.hpp>
Public Member Functions | |
BoostContext (std::function< void()> code, void_pfn_smxprocess_t cleanup_func, smx_actor_t process) | |
~BoostContext () override | |
virtual void | resume () |
![]() | |
Context (std::function< void()> code, void_pfn_smxprocess_t cleanup_func, smx_actor_t process) | |
void | operator() () |
bool | has_code () const |
smx_actor_t | process () |
void | set_cleanup (void_pfn_smxprocess_t cleanup) |
virtual | ~Context () |
virtual void | stop () |
virtual void | suspend ()=0 |
Public Attributes | |
friend | BoostContextFactory |
![]() | |
bool | iwannadie |
Protected Attributes | |
boost::context::fcontext_t | fc_ |
void * | stack_ = nullptr |
Static Protected Attributes | |
static bool | parallel_ = false |
static xbt_parmap_t | parmap_ = nullptr |
static std::vector< BoostContext * > | workers_context_ |
static uintptr_t | threads_working_ = 0 |
static xbt_os_thread_key_t | worker_id_key_ |
static unsigned long | process_index_ = 0 |
static BoostContext * | maestro_context_ = nullptr |
simgrid::kernel::context::BoostContext::BoostContext | ( | std::function< void()> | code, |
void_pfn_smxprocess_t | cleanup_func, | ||
smx_actor_t | process | ||
) |
|
override |
|
virtual |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
protected |
|
protected |
friend simgrid::kernel::context::BoostContext::BoostContextFactory |