aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_ao_firstfit_alloc.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-05-22 14:43:30 +0200
committerSverker Eriksson <[email protected]>2018-05-22 14:43:30 +0200
commit9cf67430bff860d47c359df6b997c8bcd0985f4c (patch)
tree45dc24bf4d20077336e330ccc5a2e9ec4ae65b91 /erts/emulator/beam/erl_ao_firstfit_alloc.h
parent48f2d66707330667c6d3e268466b5440d1b930ab (diff)
downloadotp-9cf67430bff860d47c359df6b997c8bcd0985f4c.tar.gz
otp-9cf67430bff860d47c359df6b997c8bcd0985f4c.tar.bz2
otp-9cf67430bff860d47c359df6b997c8bcd0985f4c.zip
erts: Let allocator pooled_tree also use Age Order
if configured for the allocator. This was not implemented and pooled_tree always used address order first fit. The "problem" was as a carrier can be part of both the pooled tree (of its owner) and the allocation tree (of a foreign instance) at the same time. Solved by duplicating 'birth_time' in both AOFF_RBTree_t nodes for each carrier. Blocks still cannot use age order and does not pay any memory cost for birth_time.
Diffstat (limited to 'erts/emulator/beam/erl_ao_firstfit_alloc.h')
-rw-r--r--erts/emulator/beam/erl_ao_firstfit_alloc.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_ao_firstfit_alloc.h b/erts/emulator/beam/erl_ao_firstfit_alloc.h
index 9cf4fc81a8..dad864801f 100644
--- a/erts/emulator/beam/erl_ao_firstfit_alloc.h
+++ b/erts/emulator/beam/erl_ao_firstfit_alloc.h
@@ -29,10 +29,10 @@
typedef struct AOFFAllctr_t_ AOFFAllctr_t;
enum AOFFSortOrder {
- FF_AGEFF = 0,
+ FF_AGEFF = 0, /* carrier trees only */
FF_AOFF = 1,
- FF_AOBF = 2,
- FF_BF = 3
+ FF_AOBF = 2, /* block trees only */
+ FF_BF = 3 /* block trees only */
};
typedef struct {