Enqueue a work item */
| 107 | } |
| 108 | /** Enqueue a work item */ |
| 109 | bool Enqueue(WorkItem* item) |
| 110 | { |
| 111 | std::unique_lock<std::mutex> lock(cs); |
| 112 | if (queue.size() >= maxDepth) { |
| 113 | return false; |
| 114 | } |
| 115 | queue.emplace_back(std::unique_ptr<WorkItem>(item)); |
| 116 | cond.notify_one(); |
| 117 | return true; |
| 118 | } |
| 119 | /** Thread function */ |
| 120 | void Run() |
| 121 | { |