Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::PythonThreadTaskScheduler Class Reference

#include <python_internal.h>

Inheritance diagram for Realm::PythonThreadTaskScheduler:
Collaboration diagram for Realm::PythonThreadTaskScheduler:

Public Member Functions

 PythonThreadTaskScheduler (LocalPythonProcessor *_pyproc, CoreReservation &_core_rsrv)
 
void python_scheduler_loop (void)
 
virtual void thread_blocking (Thread *thread)
 
virtual void thread_ready (Thread *thread)
 
- Public Member Functions inherited from Realm::KernelThreadTaskScheduler
 KernelThreadTaskScheduler (Processor _proc, CoreReservation &_core_rsrv)
 
virtual ~KernelThreadTaskScheduler (void)
 
virtual void add_task_queue (TaskQueue *queue)
 
virtual void remove_task_queue (TaskQueue *queue)
 
virtual void start (void)
 
virtual void shutdown (void)
 
virtual void thread_starting (Thread *thread)
 
virtual void thread_terminating (Thread *thread)
 
- Public Member Functions inherited from Realm::ThreadedTaskScheduler
 ThreadedTaskScheduler (void)
 
virtual ~ThreadedTaskScheduler (void)
 
virtual void configure_bgworker (BackgroundWorkManager *manager, long long max_timeslice, int numa_domain)
 
void add_task_context (const TaskContextManager *_manager)
 
virtual void set_thread_priority (Thread *thread, int new_priority)
 
void add_internal_task (InternalTask *itask)
 
void scheduler_loop (void)
 
void scheduler_loop_wlock (void)
 
- Public Member Functions inherited from Realm::ThreadScheduler
virtual ~ThreadScheduler (void)
 

Protected Member Functions

virtual bool execute_task (Task *task)
 
virtual void execute_internal_task (InternalTask *task)
 
virtual Threadworker_create (bool make_active)
 
virtual void worker_terminate (Thread *switch_to)
 
- Protected Member Functions inherited from Realm::KernelThreadTaskScheduler
virtual void worker_sleep (Thread *switch_to)
 
virtual void worker_wake (Thread *to_wake)
 
virtual void wait_for_work (uint64_t old_work_counter)
 
- Protected Member Functions inherited from Realm::ThreadedTaskScheduler
Taskget_best_ready_task (int &task_priority)
 
void update_worker_count (int active_delta, int unassigned_delta, bool check=true)
 
- Protected Member Functions inherited from Realm::ThreadScheduler
Thread::State update_thread_state (Thread *thread, Thread::State new_state)
 
bool try_update_thread_state (Thread *thread, Thread::State old_state, Thread::State new_state)
 

Protected Attributes

LocalPythonProcessorpyproc
 
bool interpreter_ready
 
std::map< Thread *, PyThreadState * > pythreads
 
- Protected Attributes inherited from Realm::KernelThreadTaskScheduler
Processor proc
 
CoreReservationcore_rsrv
 
std::set< Thread * > all_workers
 
std::set< Thread * > active_workers
 
std::set< Thread * > terminating_workers
 
std::map< Thread *, FIFOMutex::CondVar * > sleeping_threads
 
FIFOMutex::CondVar shutdown_condvar
 
- Protected Attributes inherited from Realm::ThreadedTaskScheduler
FIFOMutex lock
 
std::vector< TaskQueue * > task_queues
 
std::vector< Thread * > idle_workers
 
std::set< Thread * > blocked_workers
 
std::set< Thread * > spinning_workers
 
std::vector< const TaskContextManager * > context_managers
 
InternalTask::TaskList internal_tasks
 
ResumableQueue resumable_workers
 
std::map< Thread *, int > worker_priorities
 
atomic< bool > shutdown_flag
 
int active_worker_count
 
int unassigned_worker_count
 
WorkCounter work_counter
 
WorkCounterUpdater< TaskQueuewcu_task_queues
 
WorkCounterUpdater< ResumableQueuewcu_resume_queue
 
BackgroundWorkManager::Worker bgworker
 
atomic< bool > bgworker_interrupt
 
long long max_bgwork_timeslice
 

Additional Inherited Members

- Public Attributes inherited from Realm::ThreadedTaskScheduler
bool cfg_reuse_workers
 
int cfg_max_idle_workers
 
int cfg_min_active_workers
 
int cfg_max_active_workers
 
- Protected Types inherited from Realm::ThreadedTaskScheduler
typedef PriorityQueue< Thread *, DummyLockResumableQueue
 

Constructor & Destructor Documentation

◆ PythonThreadTaskScheduler()

Realm::PythonThreadTaskScheduler::PythonThreadTaskScheduler ( LocalPythonProcessor _pyproc,
CoreReservation _core_rsrv 
)

Member Function Documentation

◆ execute_internal_task()

virtual void Realm::PythonThreadTaskScheduler::execute_internal_task ( InternalTask task)
protectedvirtual

Reimplemented from Realm::KernelThreadTaskScheduler.

◆ execute_task()

virtual bool Realm::PythonThreadTaskScheduler::execute_task ( Task task)
protectedvirtual

Reimplemented from Realm::KernelThreadTaskScheduler.

◆ python_scheduler_loop()

void Realm::PythonThreadTaskScheduler::python_scheduler_loop ( void  )

◆ thread_blocking()

virtual void Realm::PythonThreadTaskScheduler::thread_blocking ( Thread thread)
virtual

Reimplemented from Realm::ThreadedTaskScheduler.

◆ thread_ready()

virtual void Realm::PythonThreadTaskScheduler::thread_ready ( Thread thread)
virtual

Reimplemented from Realm::ThreadedTaskScheduler.

◆ worker_create()

virtual Thread * Realm::PythonThreadTaskScheduler::worker_create ( bool  make_active)
protectedvirtual

Reimplemented from Realm::KernelThreadTaskScheduler.

◆ worker_terminate()

virtual void Realm::PythonThreadTaskScheduler::worker_terminate ( Thread switch_to)
protectedvirtual

Reimplemented from Realm::KernelThreadTaskScheduler.

Member Data Documentation

◆ interpreter_ready

bool Realm::PythonThreadTaskScheduler::interpreter_ready
protected

◆ pyproc

LocalPythonProcessor* Realm::PythonThreadTaskScheduler::pyproc
protected

◆ pythreads

std::map<Thread *, PyThreadState *> Realm::PythonThreadTaskScheduler::pythreads
protected

The documentation for this class was generated from the following file: