1*8e33eff8Schristos #ifndef JEMALLOC_INTERNAL_BACKGROUND_THREAD_EXTERNS_H 2*8e33eff8Schristos #define JEMALLOC_INTERNAL_BACKGROUND_THREAD_EXTERNS_H 3*8e33eff8Schristos 4*8e33eff8Schristos extern bool opt_background_thread; 5*8e33eff8Schristos extern size_t opt_max_background_threads; 6*8e33eff8Schristos extern malloc_mutex_t background_thread_lock; 7*8e33eff8Schristos extern atomic_b_t background_thread_enabled_state; 8*8e33eff8Schristos extern size_t n_background_threads; 9*8e33eff8Schristos extern size_t max_background_threads; 10*8e33eff8Schristos extern background_thread_info_t *background_thread_info; 11*8e33eff8Schristos extern bool can_enable_background_thread; 12*8e33eff8Schristos 13*8e33eff8Schristos bool background_thread_create(tsd_t *tsd, unsigned arena_ind); 14*8e33eff8Schristos bool background_threads_enable(tsd_t *tsd); 15*8e33eff8Schristos bool background_threads_disable(tsd_t *tsd); 16*8e33eff8Schristos void background_thread_interval_check(tsdn_t *tsdn, arena_t *arena, 17*8e33eff8Schristos arena_decay_t *decay, size_t npages_new); 18*8e33eff8Schristos void background_thread_prefork0(tsdn_t *tsdn); 19*8e33eff8Schristos void background_thread_prefork1(tsdn_t *tsdn); 20*8e33eff8Schristos void background_thread_postfork_parent(tsdn_t *tsdn); 21*8e33eff8Schristos void background_thread_postfork_child(tsdn_t *tsdn); 22*8e33eff8Schristos bool background_thread_stats_read(tsdn_t *tsdn, 23*8e33eff8Schristos background_thread_stats_t *stats); 24*8e33eff8Schristos void background_thread_ctl_init(tsdn_t *tsdn); 25*8e33eff8Schristos 26*8e33eff8Schristos #ifdef JEMALLOC_PTHREAD_CREATE_WRAPPER 27*8e33eff8Schristos extern int pthread_create_wrapper(pthread_t *__restrict, const pthread_attr_t *, 28*8e33eff8Schristos void *(*)(void *), void *__restrict); 29*8e33eff8Schristos #endif 30*8e33eff8Schristos bool background_thread_boot0(void); 31*8e33eff8Schristos bool background_thread_boot1(tsdn_t *tsdn); 32*8e33eff8Schristos 33*8e33eff8Schristos #endif /* JEMALLOC_INTERNAL_BACKGROUND_THREAD_EXTERNS_H */ 34