ucx/mempool.h

changeset 113
8693d7874773
parent 103
08018864fb91
child 120
8170f658f017
equal deleted inserted replaced
112:6384016df2a3 113:8693d7874773
43 void **data; 43 void **data;
44 size_t ndata; 44 size_t ndata;
45 size_t size; 45 size_t size;
46 } UcxMempool; 46 } UcxMempool;
47 47
48 #define UCX_ALLOCATOR_MEMPOOL(pool) {pool, \
49 (ucx_allocator_malloc) ucx_mempool_malloc, \
50 (ucx_allocator_calloc) ucx_mempool_calloc, \
51 (ucx_allocator_realloc) ucx_mempool_realloc}
52 48
53 #define ucx_mempool_new_default() ucx_mempool_new(16) 49 #define ucx_mempool_new_default() ucx_mempool_new(16)
54 UcxMempool *ucx_mempool_new(size_t n); 50 UcxMempool *ucx_mempool_new(size_t n);
55 int ucx_mempool_chcap(UcxMempool *pool, size_t newcap); 51 int ucx_mempool_chcap(UcxMempool *pool, size_t newcap);
56 52
57 void *ucx_mempool_malloc(UcxMempool *pool, size_t n); 53 void *ucx_mempool_malloc(UcxMempool *pool, size_t n);
58 void *ucx_mempool_calloc(UcxMempool *pool, size_t nelem, size_t elsize); 54 void *ucx_mempool_calloc(UcxMempool *pool, size_t nelem, size_t elsize);
59 void *ucx_mempool_realloc(UcxMempool *pool, void *ptr, size_t n); 55 void *ucx_mempool_realloc(UcxMempool *pool, void *ptr, size_t n);
56 void ucx_mempool_free(UcxMempool *pool, void *ptr);
60 57
61 void ucx_mempool_free(UcxMempool *pool); 58 void ucx_mempool_destroy(UcxMempool *pool);
62 59
63 void ucx_mempool_set_destr(void *ptr, ucx_destructor func); 60 void ucx_mempool_set_destr(void *ptr, ucx_destructor func);
64 void ucx_mempool_reg_destr(UcxMempool *pool, void *ptr, ucx_destructor destr); 61 void ucx_mempool_reg_destr(UcxMempool *pool, void *ptr, ucx_destructor destr);
65 62
63 UcxAllocator* ucx_mempool_allocator(UcxMempool *pool);
66 64
67 #ifdef __cplusplus 65 #ifdef __cplusplus
68 } 66 }
69 #endif 67 #endif
70 68

mercurial