Пример #1
0
void * mempool_alloc(mempool_t *pool)
{
    void *d;

    if(pool->free_list == NULL)
        mempool_alloc_chunk(pool);

    d = pool->free_list;

    pool->free_list = pool->free_list->next;

    return d;
}
Пример #2
0
void*
mempool_alloc(MEMPOOL* pool)
{
    MEMPOOL_FREE_BLOCK* block;

    ++pool->alloc_count;

    if (!pool->free_list) {
	/* with an empty free list, we need more memory */
	pool->free_list = mempool_alloc_chunk(pool);
    }

    /* pull off the head of the free list */
    block = pool->free_list;
    pool->free_list = pool->free_list->next;
    return block;
}