version 1.9.12.1, 2024/08/14 16:01:10
|
version 1.11, 2024/10/28 09:58:51
|
Line 91 mpool_init(u_long maxmem)
|
Line 91 mpool_init(u_long maxmem)
|
void |
void |
mpool_destroy(mpool_t ** __restrict mp) |
mpool_destroy(mpool_t ** __restrict mp) |
{ |
{ |
struct tagAlloc *m; | struct tagAlloc *m, *n; |
register int i; |
register int i; |
|
|
if (!mp || !*mp) |
if (!mp || !*mp) |
Line 100 mpool_destroy(mpool_t ** __restrict mp)
|
Line 100 mpool_destroy(mpool_t ** __restrict mp)
|
mpool_lock(*mp); |
mpool_lock(*mp); |
|
|
for (i = 0; i < MEM_BUCKETS; i++) { |
for (i = 0; i < MEM_BUCKETS; i++) { |
while ((m = TAILQ_FIRST(&(*mp)->pool_active[i]))) { | for (m = TAILQ_FIRST(&(*mp)->pool_active[i]); m; m = n) { |
TAILQ_REMOVE(&(*mp)->pool_active[i], m, alloc_node); | n = TAILQ_NEXT(m, alloc_node); |
if (m->alloc_mem) |
if (m->alloc_mem) |
free(m->alloc_mem); |
free(m->alloc_mem); |
free(m); |
free(m); |
} |
} |
while ((m = TAILQ_FIRST(&(*mp)->pool_inactive[i]))) { | for (m = TAILQ_FIRST(&(*mp)->pool_inactive[i]); m; m = n) { |
TAILQ_REMOVE(&(*mp)->pool_inactive[i], m, alloc_node); | n = TAILQ_NEXT(m, alloc_node); |
if (m->alloc_mem) |
if (m->alloc_mem) |
free(m->alloc_mem); |
free(m->alloc_mem); |
free(m); |
free(m); |
Line 318 mpool_realloc(mpool_t * __restrict mp, void * __restri
|
Line 318 mpool_realloc(mpool_t * __restrict mp, void * __restri
|
|
|
memcpy(p, data, MIN(osize, newsize)); |
memcpy(p, data, MIN(osize, newsize)); |
mpool_free(mp, data, 0); |
mpool_free(mp, data, 0); |
data = p; |
|
} else { |
} else { |
p = data; |
p = data; |
|
|