summaryrefslogtreecommitdiffstats
path: root/src/extent_dss.c
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2016-11-15 21:07:53 (GMT)
committerJason Evans <jasone@canonware.com>2016-11-15 21:08:33 (GMT)
commita38acf716eefc5284e89a35be74229ef3545d007 (patch)
tree5ef188dd5051d5bbbf3222ec7857bd4e2b36f0d4 /src/extent_dss.c
parentc0a667112cf33968b425dfbb50594aba54ea850b (diff)
downloadjemalloc-a38acf716eefc5284e89a35be74229ef3545d007.zip
jemalloc-a38acf716eefc5284e89a35be74229ef3545d007.tar.gz
jemalloc-a38acf716eefc5284e89a35be74229ef3545d007.tar.bz2
Add extent serial numbers.
Add extent serial numbers and use them where appropriate as a sort key that is higher priority than address, so that the allocation policy prefers older extents. This resolves #147.
Diffstat (limited to 'src/extent_dss.c')
-rw-r--r--src/extent_dss.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/extent_dss.c b/src/extent_dss.c
index 31fe8fe..1169d49 100644
--- a/src/extent_dss.c
+++ b/src/extent_dss.c
@@ -142,7 +142,8 @@ extent_alloc_dss(tsdn_t *tsdn, arena_t *arena, void *new_addr, size_t size,
gap_size = (uintptr_t)ret - (uintptr_t)gap_addr;
if (gap_size != 0) {
extent_init(gap, arena, gap_addr, gap_size,
- gap_size, false, false, true, false);
+ gap_size, arena_extent_sn_next(arena),
+ false, false, true, false);
}
dss_next = (void *)((uintptr_t)ret + size);
if ((uintptr_t)ret < (uintptr_t)max_cur ||