1 #include "jemalloc/internal/jemalloc_preamble.h" 2 #include "jemalloc/internal/jemalloc_internal_includes.h" 3 4 size_t 5 pai_alloc_batch_default(tsdn_t *tsdn, pai_t *self, size_t size, size_t nallocs, 6 edata_list_active_t *results, bool *deferred_work_generated) { 7 for (size_t i = 0; i < nallocs; i++) { 8 bool deferred_by_alloc = false; 9 edata_t *edata = pai_alloc(tsdn, self, size, PAGE, 10 /* zero */ false, /* guarded */ false, 11 /* frequent_reuse */ false, &deferred_by_alloc); 12 *deferred_work_generated |= deferred_by_alloc; 13 if (edata == NULL) { 14 return i; 15 } 16 edata_list_active_append(results, edata); 17 } 18 return nallocs; 19 } 20 21 void 22 pai_dalloc_batch_default(tsdn_t *tsdn, pai_t *self, 23 edata_list_active_t *list, bool *deferred_work_generated) { 24 edata_t *edata; 25 while ((edata = edata_list_active_first(list)) != NULL) { 26 bool deferred_by_dalloc = false; 27 edata_list_active_remove(list, edata); 28 pai_dalloc(tsdn, self, edata, &deferred_by_dalloc); 29 *deferred_work_generated |= deferred_by_dalloc; 30 } 31 } 32