Nebula
|
#include <fibers.h>
Classes | |
struct | Job |
Public Types | |
typedef void(*) | JobFunction(void *context) |
typedef void(*) | FiberFunction() |
Public Member Functions | |
FiberQueue () | |
constructor | |
virtual | ~FiberQueue () |
destructor | |
Static Public Member Functions | |
static void | Setup (const FiberQueueCreateInfo &info) |
setup job queue | |
static void | Discard () |
discard job queue | |
template<class T > | |
static void | Enqueue (JobFunction function, const Util::FixedArray< T * > &contexts, Threading::AtomicCounter *counter) |
enqueue job | |
static void | Free (uint id) |
free a fiber | |
static void | Sleep (FiberWaitContext context) |
sleep fiber | |
static bool | WakeupFiber (Fibers::FiberContext &fiber) |
wake up sleeping fibers | |
static bool | Dequeue (Fibers::FiberContext &fiber) |
dequeue job as a fiber | |
Static Private Attributes | |
static Threading::LockFreeQueue< Job > | PendingJobsQueue |
async queues | |
static Threading::LockFreeQueue< uint > | FiberIdQueue |
static Util::FixedArray< Fibers::Fiber > | Fibers |
storage | |
static Util::FixedArray< FiberQueue::Job > | FiberContexts |
static Util::FixedArray< Ptr< FiberThread > > | Threads |
static Threading::CriticalSection | SleepLock |
sleeping fibers | |
static Util::Array< FiberWaitContext > | SleepingFibers |
void(*) Fibers::FiberQueue::FiberFunction() |
void(*) Fibers::FiberQueue::JobFunction(void *context) |
Fibers::FiberQueue::FiberQueue | ( | ) |
constructor
|
virtual |
destructor
|
static |
dequeue job as a fiber
|
static |
discard job queue
|
inlinestatic |
enqueue job
|
static |
free a fiber
|
static |
setup job queue
|
static |
sleep fiber
|
static |
wake up sleeping fibers
|
staticprivate |
|
staticprivate |
|
staticprivate |
storage
|
staticprivate |
async queues
|
staticprivate |
|
staticprivate |
sleeping fibers
|
staticprivate |