mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-07-05 13:27:19 +03:00
Refactor bootstrapping to delay tsd initialization.
Refactor bootstrapping to delay tsd initialization, primarily to support
integration with FreeBSD's libc.
Refactor a0*() for internal-only use, and add the
bootstrap_{malloc,calloc,free}() API for use by FreeBSD's libc. This
separation limits use of the a0*() functions to metadata allocation,
which doesn't require malloc/calloc/free API compatibility.
This resolves #170.
This commit is contained in:
parent
bc96876f99
commit
10aff3f3e1
6 changed files with 210 additions and 132 deletions
|
|
@ -404,9 +404,8 @@ extern size_t const index2size_tab[NSIZES];
|
|||
extern uint8_t const size2index_tab[];
|
||||
|
||||
arena_t *a0get(void);
|
||||
void *a0malloc(size_t size);
|
||||
void *a0calloc(size_t num, size_t size);
|
||||
void a0free(void *ptr);
|
||||
void *a0malloc(size_t size, bool zero);
|
||||
void a0dalloc(void *ptr);
|
||||
arena_t *arenas_extend(unsigned ind);
|
||||
arena_t *arena_init(unsigned ind);
|
||||
unsigned narenas_total_get(void);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
a0calloc
|
||||
a0free
|
||||
a0dalloc
|
||||
a0get
|
||||
a0malloc
|
||||
arena_get
|
||||
|
|
@ -107,6 +106,9 @@ bitmap_set
|
|||
bitmap_sfu
|
||||
bitmap_size
|
||||
bitmap_unset
|
||||
bootstrap_calloc
|
||||
bootstrap_free
|
||||
bootstrap_malloc
|
||||
bt_init
|
||||
buferror
|
||||
chunk_alloc_arena
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ typedef enum {
|
|||
* void example_tsd_set(example_t *val) {...}
|
||||
*
|
||||
* Note that all of the functions deal in terms of (a_type *) rather than
|
||||
* (a_type) so that it is possible to support non-pointer types (unlike
|
||||
* (a_type) so that it is possible to support non-pointer types (unlike
|
||||
* pthreads TSD). example_tsd_cleanup() is passed an (a_type *) pointer that is
|
||||
* cast to (void *). This means that the cleanup function needs to cast the
|
||||
* function argument to (a_type *), then dereference the resulting pointer to
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue