diff options
author | Sverker Eriksson <[email protected]> | 2014-09-25 22:50:24 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2014-10-03 18:02:03 +0200 |
commit | e16f287c28ac93b54772169958c965733aa67e66 (patch) | |
tree | b648b48054f3efa8a9fa36867c16e3612158f988 /erts/emulator/beam/erl_alloc_util.h | |
parent | 891cc466c957e91c7770f0a91ba83b65a268c2c1 (diff) | |
download | otp-e16f287c28ac93b54772169958c965733aa67e66.tar.gz otp-e16f287c28ac93b54772169958c965733aa67e66.tar.bz2 otp-e16f287c28ac93b54772169958c965733aa67e66.zip |
erts: Add pooled_list and traitor_list
Diffstat (limited to 'erts/emulator/beam/erl_alloc_util.h')
-rw-r--r-- | erts/emulator/beam/erl_alloc_util.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_alloc_util.h b/erts/emulator/beam/erl_alloc_util.h index 7be6b1ed9d..eee920e66c 100644 --- a/erts/emulator/beam/erl_alloc_util.h +++ b/erts/emulator/beam/erl_alloc_util.h @@ -268,6 +268,11 @@ typedef union {char c[ERTS_ALLOC_ALIGN_BYTES]; long l; double d;} Unit_t; #ifdef ERTS_SMP +typedef struct ErtsDoubleLink_t_ { + struct ErtsDoubleLink_t_ *next; + struct ErtsDoubleLink_t_ *prev; +}ErtsDoubleLink_t; + typedef struct { erts_atomic_t next; erts_atomic_t prev; @@ -277,6 +282,7 @@ typedef struct { UWord abandon_limit; UWord blocks; UWord blocks_size; + ErtsDoubleLink_t abandoned; /* node in pooled_list or traitor_list */ } ErtsAlcCPoolData_t; #endif @@ -500,7 +506,12 @@ struct Allctr_t_ { CarrierList_t sbc_list; #ifdef ERTS_SMP struct { - CarrierList_t dc_list; + /* pooled_list, traitor list and dc_list contain only + carriers _created_ by this allocator */ + ErtsDoubleLink_t pooled_list; + ErtsDoubleLink_t traitor_list; + CarrierList_t dc_list; + UWord abandon_limit; int disable_abandon; int check_limit_count; |