Move bin forking code from arena to bin module.
This commit is contained in:
parent
a8dd8876fb
commit
48bb4a056b
@ -80,5 +80,8 @@ struct bin_s {
|
|||||||
|
|
||||||
/* Returns true on error. */
|
/* Returns true on error. */
|
||||||
bool bin_init(bin_t *bin);
|
bool bin_init(bin_t *bin);
|
||||||
|
void bin_prefork(tsdn_t *tsdn, bin_t *bin);
|
||||||
|
void bin_postfork_parent(tsdn_t *tsdn, bin_t *bin);
|
||||||
|
void bin_postfork_child(tsdn_t *tsdn, bin_t *bin);
|
||||||
|
|
||||||
#endif /* JEMALLOC_INTERNAL_BIN_H */
|
#endif /* JEMALLOC_INTERNAL_BIN_H */
|
||||||
|
@ -2126,7 +2126,7 @@ arena_prefork6(tsdn_t *tsdn, arena_t *arena) {
|
|||||||
void
|
void
|
||||||
arena_prefork7(tsdn_t *tsdn, arena_t *arena) {
|
arena_prefork7(tsdn_t *tsdn, arena_t *arena) {
|
||||||
for (unsigned i = 0; i < NBINS; i++) {
|
for (unsigned i = 0; i < NBINS; i++) {
|
||||||
malloc_mutex_prefork(tsdn, &arena->bins[i].lock);
|
bin_prefork(tsdn, &arena->bins[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2135,7 +2135,7 @@ arena_postfork_parent(tsdn_t *tsdn, arena_t *arena) {
|
|||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
for (i = 0; i < NBINS; i++) {
|
for (i = 0; i < NBINS; i++) {
|
||||||
malloc_mutex_postfork_parent(tsdn, &arena->bins[i].lock);
|
bin_postfork_parent(tsdn, &arena->bins[i]);
|
||||||
}
|
}
|
||||||
malloc_mutex_postfork_parent(tsdn, &arena->large_mtx);
|
malloc_mutex_postfork_parent(tsdn, &arena->large_mtx);
|
||||||
base_postfork_parent(tsdn, arena->base);
|
base_postfork_parent(tsdn, arena->base);
|
||||||
@ -2179,7 +2179,7 @@ arena_postfork_child(tsdn_t *tsdn, arena_t *arena) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < NBINS; i++) {
|
for (i = 0; i < NBINS; i++) {
|
||||||
malloc_mutex_postfork_child(tsdn, &arena->bins[i].lock);
|
bin_postfork_child(tsdn, &arena->bins[i]);
|
||||||
}
|
}
|
||||||
malloc_mutex_postfork_child(tsdn, &arena->large_mtx);
|
malloc_mutex_postfork_child(tsdn, &arena->large_mtx);
|
||||||
base_postfork_child(tsdn, arena->base);
|
base_postfork_child(tsdn, arena->base);
|
||||||
|
17
src/bin.c
17
src/bin.c
@ -21,7 +21,7 @@ const bin_info_t bin_infos[NBINS] = {
|
|||||||
|
|
||||||
bool
|
bool
|
||||||
bin_init(bin_t *bin) {
|
bin_init(bin_t *bin) {
|
||||||
if (malloc_mutex_init(&bin->lock, "arena_bin", WITNESS_RANK_BIN,
|
if (malloc_mutex_init(&bin->lock, "bin", WITNESS_RANK_BIN,
|
||||||
malloc_mutex_rank_exclusive)) {
|
malloc_mutex_rank_exclusive)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -33,3 +33,18 @@ bin_init(bin_t *bin) {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
bin_prefork(tsdn_t *tsdn, bin_t *bin) {
|
||||||
|
malloc_mutex_prefork(tsdn, &bin->lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
bin_postfork_parent(tsdn_t *tsdn, bin_t *bin) {
|
||||||
|
malloc_mutex_postfork_parent(tsdn, &bin->lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
bin_postfork_child(tsdn_t *tsdn, bin_t *bin) {
|
||||||
|
malloc_mutex_postfork_child(tsdn, &bin->lock);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user