diff options
author | Björn Gustavsson <[email protected]> | 2018-11-06 11:56:50 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2018-11-06 11:56:50 +0100 |
commit | adffe592c98149ac3b7333cf6e46970a13a57350 (patch) | |
tree | c22ccbe14e456bb0da7547ada016e3b1fef4fdd0 /erts/emulator/beam/global.h | |
parent | e7e3f59e5350bb39f57f0403f3c78443c58039b1 (diff) | |
parent | 7489e818de5da5e1648ac06356eeefdc98902564 (diff) | |
download | otp-adffe592c98149ac3b7333cf6e46970a13a57350.tar.gz otp-adffe592c98149ac3b7333cf6e46970a13a57350.tar.bz2 otp-adffe592c98149ac3b7333cf6e46970a13a57350.zip |
Merge branch 'bjorn/erts/persistent_terms/OTP-14669' into maint
* bjorn/erts/persistent_terms/OTP-14669:
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
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 21ae205237..0631404599 100644 --- a/erts/emulator/beam/global.h +++ b/erts/emulator/beam/global.h @@ -906,6 +906,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)) @@ -1001,6 +1003,7 @@ typedef struct { Uint literal_size; Eterm *lit_purge_ptr; Uint lit_purge_sz; + int copy_literals; } erts_shcopy_t; #define INITIALIZE_SHCOPY(info) \ @@ -1010,6 +1013,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; \ @@ -1238,6 +1242,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); |