1#include "jemalloc/internal/jemalloc_preamble.h"
2#include "jemalloc/internal/jemalloc_internal_includes.h"
3
4size_t
5pai_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
21void
22pai_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