| 53 | } |
| 54 | |
| 55 | TIBMemPool::~TIBMemPool() { |
| 56 | Y_ASSERT(WorkThread.Running()); |
| 57 | KeepRunning = false; |
| 58 | HasWork.Signal(); |
| 59 | WorkThread.Join(); |
| 60 | { |
| 61 | TJobItem* work = nullptr; |
| 62 | while (Requests.Dequeue(&work)) { |
| 63 | delete work; |
| 64 | } |
| 65 | } |
| 66 | } |
| 67 | |
| 68 | TIntrusivePtr<TIBMemSuperBlock> TIBMemPool::AllocSuper(size_t szArg) { |
| 69 | // assume CacheLock is taken |