| 1146 | #endif |
| 1147 | } |
| 1148 | void Done() { |
| 1149 | for (auto sizeIdx : FreePtrIndex) { |
| 1150 | Y_ASSERT_NOBT(sizeIdx == THREAD_BUF); |
| 1151 | } |
| 1152 | for (auto& localCounter : LocalCounters) { |
| 1153 | localCounter.Flush(); |
| 1154 | } |
| 1155 | #if defined(LFALLOC_DBG) |
| 1156 | for (int tag = 0; tag < DBG_ALLOC_MAX_TAG; ++tag) { |
| 1157 | for (int sizeIdx = 0; sizeIdx < DBG_ALLOC_NUM_SIZES; ++sizeIdx) { |
| 1158 | auto& local = LocalPerTagAllocCounters[tag][sizeIdx]; |
| 1159 | auto& global = GlobalPerTagAllocCounters[tag][sizeIdx]; |
| 1160 | local.Flush(global); |
| 1161 | } |
| 1162 | } |
| 1163 | #endif |
| 1164 | #ifdef _win_ |
| 1165 | if (hThread) |
| 1166 | CloseHandle(hThread); |
| 1167 | #endif |
| 1168 | } |
| 1169 | }; |
| 1170 | PERTHREAD TThreadAllocInfo* pThreadInfo; |
| 1171 | static TThreadAllocInfo* pThreadInfoList; |
no test coverage detected