|
|
|
@ -79,16 +79,18 @@ void memory_pool_destroy(struct memory_pool* pool) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "pool_destroy: allocations=%zu, reuse=%zu", pool->allocations, pool->reuse_count); |
|
|
|
int cnt=0; |
|
|
|
|
|
|
|
|
|
|
|
// Освободить все объекты в пуле
|
|
|
|
// Освободить все объекты в пуле
|
|
|
|
void* obj = pool->free_head; |
|
|
|
void* obj = pool->free_head; |
|
|
|
while (obj) { |
|
|
|
while (obj) { |
|
|
|
void* next = *(void**)obj; |
|
|
|
void* next = *(void**)obj; |
|
|
|
u_free(obj); |
|
|
|
u_free(obj); |
|
|
|
|
|
|
|
cnt++; |
|
|
|
obj = next; |
|
|
|
obj = next; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "pool_destroy: allocations=%zu, reuse=%zu, current pool size=%d", pool->allocations, pool->reuse_count, cnt); |
|
|
|
|
|
|
|
|
|
|
|
pool->free_head = NULL; |
|
|
|
pool->free_head = NULL; |
|
|
|
pool->free_count = 0; |
|
|
|
pool->free_count = 0; |
|
|
|
u_free(pool); |
|
|
|
u_free(pool); |
|
|
|
|