| 101 | } |
| 102 | |
| 103 | void ScannerMemLimiter::ReleaseMemoryForScannerThread( |
| 104 | ScanNode* node, int64_t estimated_thread_mem) { |
| 105 | shared_lock<shared_mutex> read_lock(registered_scans_lock_); |
| 106 | auto it = registered_scans_.find(node); |
| 107 | DCHECK(it != registered_scans_.end()) << node->id() << " not found."; |
| 108 | RegisteredScan* scan = it->second.get(); |
| 109 | int64_t mem = scan->estimated_mem.Add(-estimated_thread_mem); |
| 110 | DCHECK_GE(mem, 0); |
| 111 | int64_t num_threads = scan->num_threads.Add(-1); |
| 112 | DCHECK_GE(num_threads, 0); |
| 113 | } |
| 114 | } |
no test coverage detected