src/server/ucx/mempool.h

changeset 88
73b3485e96f1
parent 71
069c152f6272
equal deleted inserted replaced
87:bdec069d2239 88:73b3485e96f1
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