Finalize a global cache
| 1439 | |
| 1440 | //! Finalize a global cache |
| 1441 | static void |
| 1442 | _rpmalloc_global_cache_finalize(global_cache_t* cache) { |
| 1443 | while (!atomic_cas32_acquire(&cache->lock, 1, 0)) |
| 1444 | _rpmalloc_spin(); |
| 1445 | |
| 1446 | for (size_t ispan = 0; ispan < cache->count; ++ispan) |
| 1447 | _rpmalloc_span_unmap(cache->span[ispan]); |
| 1448 | cache->count = 0; |
| 1449 | |
| 1450 | while (cache->overflow) { |
| 1451 | span_t* span = cache->overflow; |
| 1452 | cache->overflow = span->next; |
| 1453 | _rpmalloc_span_unmap(span); |
| 1454 | } |
| 1455 | |
| 1456 | atomic_store32_release(&cache->lock, 0); |
| 1457 | } |
| 1458 | |
| 1459 | static void |
| 1460 | _rpmalloc_global_cache_insert_spans(span_t** span, size_t span_count, size_t count) { |
no test coverage detected