| 94 | } |
| 95 | |
| 96 | bool getBatch(Batch &batch) { |
| 97 | auto lock = std::unique_lock(mutex_); |
| 98 | if (global_.empty()) { |
| 99 | return false; |
| 100 | } |
| 101 | |
| 102 | // pop a batch from global cache. |
| 103 | batch = std::move(global_.back()); |
| 104 | global_.pop_back(); |
| 105 | return true; |
| 106 | } |
| 107 | |
| 108 | void putBatch(Batch batch) { |
| 109 | auto lock = std::unique_lock(mutex_); |