Sane C++ Libraries
C++ Platform Abstraction Libraries
Loading...
Searching...
No Matches
SC::FiberJobWorkerPool Struct Reference

No-allocation OS-thread-owning pool for bounded stackless FiberJob execution. More...

#include <Fibers.h>

Classes

struct  WakeEventDefinition
 

Public Types

using WakeEventOpaque = OpaqueObject<WakeEventDefinition>
 

Public Member Functions

 FiberJobWorkerPool (const FiberJobWorkerPool &)=delete
 
FiberJobWorkerPooloperator= (const FiberJobWorkerPool &)=delete
 
Result start (FiberJobScheduler &scheduler, Span< FiberJobWorker > workerStorage, Span< FiberJobWorkerThread > threadStorage, const FiberJobWorkerPoolOptions &options)
 
Result waitIdle ()
 Waits for the scheduler to reach an idle observation point without stopping a persistent pool.
 
Result requestStop ()
 Requests scheduler-wide cooperative cancellation and wakes every worker before the pool drains.
 
Result join ()
 Persistent pools reject join until requestStop() has established the terminal boundary.
 
Result shutdown ()
 
bool isRunning () const
 
size_t workerCount () const
 
size_t parkedWorkerCount () const
 

Friends

struct FiberJobScheduler
 
struct FiberJobWorkerThread
 

Detailed Description

No-allocation OS-thread-owning pool for bounded stackless FiberJob execution.

Member Function Documentation

◆ join()

Result SC::FiberJobWorkerPool::join ( )

Persistent pools reject join until requestStop() has established the terminal boundary.

◆ requestStop()

Result SC::FiberJobWorkerPool::requestStop ( )

Requests scheduler-wide cooperative cancellation and wakes every worker before the pool drains.

◆ waitIdle()

Result SC::FiberJobWorkerPool::waitIdle ( )

Waits for the scheduler to reach an idle observation point without stopping a persistent pool.


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