![]() |
Bitcoin Core 29.99.0
P2P Digital Currency
|
Simple work queue for distributing work over multiple threads. More...
Public Member Functions | |
WorkQueue (size_t _maxDepth) | |
~WorkQueue ()=default | |
Precondition: worker threads have all stopped (they have been joined). More... | |
bool | Enqueue (WorkItem *item) EXCLUSIVE_LOCKS_REQUIRED(!cs) |
Enqueue a work item. More... | |
void | Run () EXCLUSIVE_LOCKS_REQUIRED(!cs) |
Thread function. More... | |
void | Interrupt () EXCLUSIVE_LOCKS_REQUIRED(!cs) |
Interrupt and exit loops. More... | |
Private Member Functions | |
std::condition_variable cond | GUARDED_BY (cs) |
std::deque< std::unique_ptr< WorkItem > > queue | GUARDED_BY (cs) |
bool running | GUARDED_BY (cs) |
Private Attributes | |
Mutex | cs |
const size_t | maxDepth |
Simple work queue for distributing work over multiple threads.
Work items are simply callable objects.
Definition at line 76 of file httpserver.cpp.
|
inlineexplicit |
Definition at line 86 of file httpserver.cpp.
Precondition: worker threads have all stopped (they have been joined).
|
inline |
Enqueue a work item.
Definition at line 93 of file httpserver.cpp.
|
private |
|
private |
Definition at line 82 of file httpserver.cpp.
|
inline |
Interrupt and exit loops.
Definition at line 121 of file httpserver.cpp.
|
inline |
Thread function.
Definition at line 104 of file httpserver.cpp.
Definition at line 79 of file httpserver.cpp.
|
private |
Definition at line 83 of file httpserver.cpp.