A basic Worker Scheduler with just a readyQ and periodicQ. More...
#include <BasicScheduler.hpp>
Public Member Functions | |
BasicScheduler (Worker *master) | |
Worker * | get_current_thread () |
void | assignTid (Worker *thr) |
void | ready (Worker *thr) |
void | periodic (Worker *thr) |
void | run () |
run threads until all exit More... | |
bool | thread_yield () |
Yield the CPU to the next Worker on your scheduler. More... | |
void | thread_suspend () |
Suspend the current Worker. Worker is not placed on any queue. More... | |
void | thread_wake (Worker *next) |
Wake a suspended Worker by putting it on the run queue. More... | |
void | thread_yield_wake (Worker *next) |
Yield the current Worker and wake a suspended thread. More... | |
void | thread_suspend_wake (Worker *next) |
Suspend current Worker and wake a suspended thread. More... | |
void | thread_join (Worker *wait_on) |
Worker * | thread_wait (void **result) |
void | thread_on_exit () |
A basic Worker Scheduler with just a readyQ and periodicQ.
Definition at line 47 of file BasicScheduler.hpp.
|
inline |
Definition at line 96 of file BasicScheduler.hpp.
|
inlinevirtual |
Implements Grappa::Scheduler.
Definition at line 110 of file BasicScheduler.hpp.
|
inlinevirtual |
Implements Grappa::Scheduler.
Definition at line 106 of file BasicScheduler.hpp.
|
inlinevirtual |
Implements Grappa::Scheduler.
Definition at line 118 of file BasicScheduler.hpp.
|
inlinevirtual |
Implements Grappa::Scheduler.
Definition at line 114 of file BasicScheduler.hpp.
|
virtual |
run threads until all exit
Implements Grappa::Scheduler.
Definition at line 41 of file BasicScheduler.cpp.
void Grappa::BasicScheduler::thread_join | ( | Worker * | wait_on | ) |
|
inlinevirtual |
Implements Grappa::Scheduler.
Definition at line 218 of file BasicScheduler.hpp.
|
inlinevirtual |
Suspend the current Worker. Worker is not placed on any queue.
Implements Grappa::Scheduler.
Definition at line 163 of file BasicScheduler.hpp.
|
inlinevirtual |
Suspend current Worker and wake a suspended thread.
For now, waking a running Worker is a fatal error. For now, waking a queued Worker is also a fatal error.
Implements Grappa::Scheduler.
Definition at line 206 of file BasicScheduler.hpp.
|
virtual |
Implements Grappa::Scheduler.
Definition at line 45 of file BasicScheduler.cpp.
|
inlinevirtual |
Wake a suspended Worker by putting it on the run queue.
For now, waking a running Worker is a fatal error. For now, waking a queued Worker is also a fatal error. For now, can only wake a Worker on your scheduler
Implements Grappa::Scheduler.
Definition at line 179 of file BasicScheduler.hpp.
|
inlinevirtual |
Yield the CPU to the next Worker on your scheduler.
Doesn't ever touch the master Worker.
Implements Grappa::Scheduler.
Definition at line 145 of file BasicScheduler.hpp.
|
inlinevirtual |
Yield the current Worker and wake a suspended thread.
For now, waking a running Worker is a fatal error. For now, waking a queued Worker is also a fatal error.
Implements Grappa::Scheduler.
Definition at line 190 of file BasicScheduler.hpp.