| 61 | } |
| 62 | |
| 63 | void ThreadResourceMgr::DestroyPool(unique_ptr<ThreadResourcePool> pool) { |
| 64 | DCHECK(pool != nullptr); |
| 65 | DCHECK(pool->parent_ != nullptr) << "Already unregistered"; |
| 66 | DCHECK_EQ(pool->num_callbacks_.Load(), 0); |
| 67 | unique_lock<mutex> l(lock_); |
| 68 | DCHECK(pools_.find(pool.get()) != pools_.end()); |
| 69 | pools_.erase(pool.get()); |
| 70 | pool->parent_ = nullptr; |
| 71 | pool.reset(); |
| 72 | UpdatePoolQuotas(); |
| 73 | } |
| 74 | |
| 75 | int ThreadResourcePool::AddThreadAvailableCb(ThreadAvailableCb fn) { |
| 76 | unique_lock<mutex> l(lock_); |