diff options
Diffstat (limited to 'third_party/nix/src/libutil/pool.hh')
-rw-r--r-- | third_party/nix/src/libutil/pool.hh | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/third_party/nix/src/libutil/pool.hh b/third_party/nix/src/libutil/pool.hh index 56a579b269cd..e3ea8cad5734 100644 --- a/third_party/nix/src/libutil/pool.hh +++ b/third_party/nix/src/libutil/pool.hh @@ -125,8 +125,9 @@ class Pool { /* If we're over the maximum number of instance, we need to wait until a slot becomes available. */ - while (state_->idle.empty() && state_->inUse >= state_->max) + while (state_->idle.empty() && state_->inUse >= state_->max) { state_.wait(wakeup); + } while (!state_->idle.empty()) { auto p = state_->idle.back(); @@ -163,10 +164,11 @@ class Pool { void flushBad() { auto state_(state.lock()); std::vector<ref<R>> left; - for (auto& p : state_->idle) + for (auto& p : state_->idle) { if (validator(p)) { left.push_back(p); } + } std::swap(state_->idle, left); } }; |