Fabcoin Core
0.16.2
P2P Digital Currency
|
Simple work queue for distributing work over multiple threads. More...
Classes | |
class | ThreadCounter |
RAII object to keep track of number of running worker threads. More... | |
Public Member Functions | |
WorkQueue (size_t _maxDepth) | |
~WorkQueue () | |
Precondition: worker threads have all stopped (call WaitExit) More... | |
bool | Enqueue (WorkItem *item) |
Enqueue a work item. More... | |
void | Run () |
Thread function. More... | |
void | Interrupt () |
Interrupt and exit loops. More... | |
void | WaitExit () |
Wait for worker threads to exit. More... | |
Private Attributes | |
std::mutex | cs |
Mutex protects entire object. More... | |
std::condition_variable | cond |
std::deque< std::unique_ptr< 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 98 of file httpserver.cpp.
Precondition: worker threads have all stopped (call WaitExit)
Definition at line 106 of file httpserver.cpp.
|
inline |
Enqueue a work item.
Definition at line 110 of file httpserver.cpp.
|
inline |
Interrupt and exit loops.
Definition at line 139 of file httpserver.cpp.
|
inline |
Thread function.
Definition at line 121 of file httpserver.cpp.
|
inline |
Wait for worker threads to exit.
Definition at line 146 of file httpserver.cpp.
|
private |
Definition at line 73 of file httpserver.cpp.
|
private |
Mutex protects entire object.
Definition at line 72 of file httpserver.cpp.
|
private |
Definition at line 76 of file httpserver.cpp.
|
private |
Definition at line 77 of file httpserver.cpp.
|
private |
Definition at line 74 of file httpserver.cpp.
|
private |
Definition at line 75 of file httpserver.cpp.