![]() |
Dash Core
0.12.2.1
P2P Digital Currency
|
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 |
Simple work queue for distributing work over multiple threads. Work items are simply callable objects.
Definition at line 68 of file httpserver.cpp.
Definition at line 99 of file httpserver.cpp.
Definition at line 107 of file httpserver.cpp.
|
inline |
Return current depth of queue
Definition at line 161 of file httpserver.cpp.
|
inline |
Enqueue a work item
Definition at line 115 of file httpserver.cpp.
|
inline |
Interrupt and exit loops
Definition at line 145 of file httpserver.cpp.
|
inline |
|
inline |
Wait for worker threads to exit
Definition at line 152 of file httpserver.cpp.
|
private |
Definition at line 73 of file httpserver.cpp.
Referenced by WorkQueue< WorkItem >::Enqueue(), WorkQueue< WorkItem >::Interrupt(), WorkQueue< WorkItem >::Run(), WorkQueue< WorkItem >::WaitExit(), and WorkQueue< WorkItem >::ThreadCounter::~ThreadCounter().
|
private |
Mutex protects entire object
Definition at line 72 of file httpserver.cpp.
Referenced by WorkQueue< WorkItem >::Depth(), WorkQueue< WorkItem >::Enqueue(), WorkQueue< WorkItem >::Interrupt(), WorkQueue< WorkItem >::Run(), WorkQueue< WorkItem >::ThreadCounter::ThreadCounter(), WorkQueue< WorkItem >::WaitExit(), and WorkQueue< WorkItem >::ThreadCounter::~ThreadCounter().
|
private |
Definition at line 77 of file httpserver.cpp.
Referenced by WorkQueue< WorkItem >::Enqueue().
|
private |
Definition at line 78 of file httpserver.cpp.
Referenced by WorkQueue< WorkItem >::ThreadCounter::ThreadCounter(), WorkQueue< WorkItem >::WaitExit(), and WorkQueue< WorkItem >::ThreadCounter::~ThreadCounter().
|
private |
Definition at line 75 of file httpserver.cpp.
Referenced by WorkQueue< WorkItem >::Depth(), WorkQueue< WorkItem >::Enqueue(), WorkQueue< WorkItem >::Run(), and WorkQueue< WorkItem >::~WorkQueue().
|
private |
Definition at line 76 of file httpserver.cpp.
Referenced by WorkQueue< WorkItem >::Interrupt(), and WorkQueue< WorkItem >::Run().