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/preloaded/src/persistent_term.erl | |
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/preloaded/src/persistent_term.erl')
-rw-r--r-- | erts/preloaded/src/persistent_term.erl | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/erts/preloaded/src/persistent_term.erl b/erts/preloaded/src/persistent_term.erl new file mode 100644 index 0000000000..5d0c266127 --- /dev/null +++ b/erts/preloaded/src/persistent_term.erl @@ -0,0 +1,55 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2018. All Rights Reserved. +%% +%% Licensed under the Apache License, Version 2.0 (the "License"); +%% you may not use this file except in compliance with the License. +%% You may obtain a copy of the License at +%% +%% http://www.apache.org/licenses/LICENSE-2.0 +%% +%% Unless required by applicable law or agreed to in writing, software +%% distributed under the License is distributed on an "AS IS" BASIS, +%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +%% See the License for the specific language governing permissions and +%% limitations under the License. +%% +%% %CopyrightEnd% +%% +-module(persistent_term). + +-export([erase/1,get/0,get/1,info/0,put/2]). + +-type key() :: term(). +-type value() :: term(). + +-spec erase(Key) -> Result when + Key :: key(), + Result :: boolean(). +erase(_Key) -> + erlang:nif_error(undef). + +-spec get() -> List when + List :: [{key(),value()}]. +get() -> + erlang:nif_error(undef). + +-spec get(Key) -> Value when + Key :: key(), + Value :: value(). +get(_Key) -> + erlang:nif_error(undef). + +-spec info() -> Info when + Info :: #{'count':=Count,'memory':=Memory}, + Count :: non_neg_integer(), + Memory :: non_neg_integer(). +info() -> + erlang:nif_error(undef). + +-spec put(Key, Value) -> 'ok' when + Key :: key(), + Value :: value(). +put(_Key, _Value) -> + erlang:nif_error(undef). |