diff options
author | Gabriele Santomaggio <[email protected]> | 2016-10-13 21:17:10 +0200 |
---|---|---|
committer | Gabriele Santomaggio <[email protected]> | 2016-10-13 21:17:10 +0200 |
commit | 2dfca60a24c2c6728a4b8431f37aeee05212a4ac (patch) | |
tree | 400e1ea4c5b1a0d5f2ad49f3b09c4dd3c96e5d61 /erts/emulator/beam | |
parent | c8fb8c177b9f74ddea36d9c002df4f9c1bf4fb27 (diff) | |
download | otp-2dfca60a24c2c6728a4b8431f37aeee05212a4ac.tar.gz otp-2dfca60a24c2c6728a4b8431f37aeee05212a4ac.tar.bz2 otp-2dfca60a24c2c6728a4b8431f37aeee05212a4ac.zip |
Add system_info(atom_limit)
Add system_info(atom_limit) to provide a way to retrieve the maximum
number of atoms allowed. Add tests and documentation for it too.
Also split system_info_SUITE:start_node/2 to start_node_ets/2 and
start_node_atm/2 to avoid code duplication.
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/atom.c | 6 | ||||
-rw-r--r-- | erts/emulator/beam/atom.h | 1 | ||||
-rw-r--r-- | erts/emulator/beam/erl_bif_info.c | 3 |
3 files changed, 10 insertions, 0 deletions
diff --git a/erts/emulator/beam/atom.c b/erts/emulator/beam/atom.c index a5e778e4aa..d2fad24805 100644 --- a/erts/emulator/beam/atom.c +++ b/erts/emulator/beam/atom.c @@ -483,3 +483,9 @@ dump_atoms(int to, void *to_arg) } } } + +Uint +erts_get_atom_limit(void) +{ + return erts_atom_table.limit; +}
\ No newline at end of file diff --git a/erts/emulator/beam/atom.h b/erts/emulator/beam/atom.h index ae60904785..0d34c47a55 100644 --- a/erts/emulator/beam/atom.h +++ b/erts/emulator/beam/atom.h @@ -138,6 +138,7 @@ int atom_static_put(byte*, int); void init_atom_table(void); void atom_info(int, void *); void dump_atoms(int, void *); +Uint erts_get_atom_limit(void); int erts_atom_get(const char* name, int len, Eterm* ap, ErtsAtomEncoding enc); void erts_atom_get_text_space_sizes(Uint *reserved, Uint *used); #endif diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c index 29ba12dfdb..cfe01f244e 100644 --- a/erts/emulator/beam/erl_bif_info.c +++ b/erts/emulator/beam/erl_bif_info.c @@ -2859,6 +2859,9 @@ BIF_RETTYPE system_info_1(BIF_ALIST_1) else if (ERTS_IS_ATOM_STR("ets_limit",BIF_ARG_1)) { BIF_RET(make_small(erts_db_get_max_tabs())); } + else if (ERTS_IS_ATOM_STR("atom_limit",BIF_ARG_1)) { + BIF_RET(make_small(erts_get_atom_limit())); + } else if (ERTS_IS_ATOM_STR("tolerant_timeofday",BIF_ARG_1)) { if (erts_has_time_correction() && erts_time_offset_state() == ERTS_TIME_OFFSET_FINAL) { |