| 1245 | static PERTHREAD bool IsStoppingThread; |
| 1246 | |
| 1247 | static void FreeThreadCache(void*) { |
| 1248 | TThreadAllocInfo* pToDelete = nullptr; |
| 1249 | { |
| 1250 | TLFLockHolder ll(&LFLockThreadInfo); |
| 1251 | pToDelete = pThreadInfo; |
| 1252 | if (pToDelete == nullptr) |
| 1253 | return; |
| 1254 | |
| 1255 | // remove from the list |
| 1256 | for (TThreadAllocInfo** p = &pThreadInfoList; *p; p = &(*p)->pNextInfo) { |
| 1257 | if (*p == pToDelete) { |
| 1258 | *p = pToDelete->pNextInfo; |
| 1259 | break; |
| 1260 | } |
| 1261 | } |
| 1262 | IsStoppingThread = true; |
| 1263 | pThreadInfo = nullptr; |
| 1264 | } |
| 1265 | |
| 1266 | // free per thread buf |
| 1267 | MoveSingleThreadFreeToGlobal(pToDelete); |
| 1268 | pToDelete->Done(); |
| 1269 | SystemFree(pToDelete); |
| 1270 | } |
| 1271 | #endif |
| 1272 | |
| 1273 | static void AllocThreadInfo() { |
nothing calls this directly
no test coverage detected