Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/jemalloc/src/pai.c
39483 views
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
33