![]() |
Bitcoin ABC 0.32.4
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 all 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 Attributes | |
| Mutex | cs |
| Mutex protects entire object. More... | |
| std::condition_variable | cond |
| std::deque< std::unique_ptr< WorkItem > > | queue |
| bool | running {true} |
| size_t | maxDepth |
Simple work queue for distributing work over multiple threads.
Work items are simply callable objects.
Definition at line 73 of file httpserver.cpp.
|
inlineexplicit |
Definition at line 83 of file httpserver.cpp.
Precondition: worker threads have all stopped (they have all been joined)
|
inline |
Enqueue a work item.
Definition at line 90 of file httpserver.cpp.
|
inline |
Interrupt and exit loops.
Definition at line 120 of file httpserver.cpp.
|
inline |
Thread function.
Definition at line 101 of file httpserver.cpp.
|
private |
Definition at line 77 of file httpserver.cpp.
Mutex protects entire object.
Definition at line 76 of file httpserver.cpp.
|
private |
Definition at line 80 of file httpserver.cpp.
|
private |
Definition at line 78 of file httpserver.cpp.
|
private |
Definition at line 79 of file httpserver.cpp.