diff options
author | Björn Gustavsson <[email protected]> | 2018-11-06 12:06:32 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2018-11-06 12:06:32 +0100 |
commit | abde22933f5a617376d7db9fd91690e901c996ef (patch) | |
tree | 7efe4f3dd9baf5c48cde8b01481c0ef661bbd780 /erts/emulator/beam/global.h | |
parent | c2a3104849583a9e1aa5370873457975bef67296 (diff) | |
parent | adffe592c98149ac3b7333cf6e46970a13a57350 (diff) | |
download | otp-abde22933f5a617376d7db9fd91690e901c996ef.tar.gz otp-abde22933f5a617376d7db9fd91690e901c996ef.tar.bz2 otp-abde22933f5a617376d7db9fd91690e901c996ef.zip |
Merge branch 'maint'
* maint:
Implement a tab for persistent terms in crashdump viewer
Add tests of persistent terms for crashdump_viewer
Add a persistent term storage
Refactor releasing of literals
Extend the sharing-preserving routines to optionally copy literals
Conflicts:
erts/emulator/Makefile.in
erts/emulator/beam/erl_process_dump.c
erts/preloaded/ebin/erts_internal.beam
erts/preloaded/ebin/init.beam
lib/sasl/src/systools_make.erl
Diffstat (limited to 'erts/emulator/beam/global.h')
-rw-r--r-- | erts/emulator/beam/global.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/erts/emulator/beam/global.h b/erts/emulator/beam/global.h index 187d2635ea..322981ca1d 100644 --- a/erts/emulator/beam/global.h +++ b/erts/emulator/beam/global.h @@ -905,6 +905,8 @@ typedef struct ErtsLiteralArea_ { Eterm start[1]; /* beginning of area */ } ErtsLiteralArea; +void erts_queue_release_literals(Process *c_p, ErtsLiteralArea* literals); + #define ERTS_LITERAL_AREA_ALLOC_SIZE(N) \ (sizeof(ErtsLiteralArea) + sizeof(Eterm)*((N) - 1)) @@ -1000,6 +1002,7 @@ typedef struct { Uint literal_size; Eterm *lit_purge_ptr; Uint lit_purge_sz; + int copy_literals; } erts_shcopy_t; #define INITIALIZE_SHCOPY(info) \ @@ -1009,6 +1012,7 @@ typedef struct { info.bitstore_start = info.bitstore_default; \ info.shtable_start = info.shtable_default; \ info.literal_size = 0; \ + info.copy_literals = 0; \ if (larea__) { \ info.lit_purge_ptr = &larea__->start[0]; \ info.lit_purge_sz = larea__->end - info.lit_purge_ptr; \ @@ -1237,6 +1241,13 @@ Sint erts_re_set_loop_limit(Sint limit); void erts_init_bif_binary(void); Sint erts_binary_set_loop_limit(Sint limit); +/* erl_bif_persistent.c */ +void erts_init_bif_persistent_term(void); +Uint erts_persistent_term_count(void); +void erts_init_persistent_dumping(void); +extern ErtsLiteralArea** erts_persistent_areas; +extern Uint erts_num_persistent_areas; + /* external.c */ void erts_init_external(void); |