| 129 | void refill_thread(); |
| 130 | |
| 131 | std::shared_ptr<RateBucket> |
| 132 | add(uint32_t max) |
| 133 | { |
| 134 | auto bucket = std::make_shared<RateBucket>(max); |
| 135 | std::lock_guard<std::mutex> lock(_mutex); |
| 136 | |
| 137 | if (!_running) { |
| 138 | _running = true; |
| 139 | _thread = std::thread(&BucketManager::refill_thread, this); |
| 140 | } |
| 141 | |
| 142 | _buckets.push_back(bucket); |
| 143 | |
| 144 | return bucket; |
| 145 | } |
| 146 | |
| 147 | void |
| 148 | remove(std::shared_ptr<RateBucket> bucket) |