Dash Core  0.12.2.1
P2P Digital Currency
WorkQueue< WorkItem > Class Template Reference

Classes

class  ThreadCounter
 

Public Member Functions

 WorkQueue (size_t maxDepth)
 
 ~WorkQueue ()
 
bool Enqueue (WorkItem *item)
 
void Run ()
 
void Interrupt ()
 
void WaitExit ()
 
size_t Depth ()
 

Private Attributes

CWaitableCriticalSection cs
 
CConditionVariable cond
 
std::deque< WorkItem * > queue
 
bool running
 
size_t maxDepth
 
int numThreads
 

Detailed Description

template<typename WorkItem>
class WorkQueue< WorkItem >

Simple work queue for distributing work over multiple threads. Work items are simply callable objects.

Definition at line 68 of file httpserver.cpp.

Constructor & Destructor Documentation

◆ WorkQueue()

template<typename WorkItem>
WorkQueue< WorkItem >::WorkQueue ( size_t  maxDepth)
inline

Definition at line 99 of file httpserver.cpp.

◆ ~WorkQueue()

template<typename WorkItem>
WorkQueue< WorkItem >::~WorkQueue ( )
inline

Definition at line 107 of file httpserver.cpp.

Member Function Documentation

◆ Depth()

template<typename WorkItem>
size_t WorkQueue< WorkItem >::Depth ( )
inline

Return current depth of queue

Definition at line 161 of file httpserver.cpp.

◆ Enqueue()

template<typename WorkItem>
bool WorkQueue< WorkItem >::Enqueue ( WorkItem *  item)
inline

Enqueue a work item

Definition at line 115 of file httpserver.cpp.

◆ Interrupt()

template<typename WorkItem>
void WorkQueue< WorkItem >::Interrupt ( )
inline

Interrupt and exit loops

Definition at line 145 of file httpserver.cpp.

◆ Run()

template<typename WorkItem>
void WorkQueue< WorkItem >::Run ( )
inline

Thread function

Definition at line 126 of file httpserver.cpp.

Referenced by HTTPWorkQueueRun().

◆ WaitExit()

template<typename WorkItem>
void WorkQueue< WorkItem >::WaitExit ( )
inline

Wait for worker threads to exit

Definition at line 152 of file httpserver.cpp.

Member Data Documentation

◆ cond

◆ cs

◆ maxDepth

template<typename WorkItem>
size_t WorkQueue< WorkItem >::maxDepth
private

Definition at line 77 of file httpserver.cpp.

Referenced by WorkQueue< WorkItem >::Enqueue().

◆ numThreads

template<typename WorkItem>
int WorkQueue< WorkItem >::numThreads
private

◆ queue

template<typename WorkItem>
std::deque<WorkItem*> WorkQueue< WorkItem >::queue
private

◆ running

template<typename WorkItem>
bool WorkQueue< WorkItem >::running
private

Definition at line 76 of file httpserver.cpp.

Referenced by WorkQueue< WorkItem >::Interrupt(), and WorkQueue< WorkItem >::Run().


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