File 6032-Add-nlocks-to-undocumented-ets-info-T-stats.patch of Package erlang
From af690f52acf6e534451044f606dd487f26176fe3 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Mon, 13 Dec 2021 14:12:27 +0100
Subject: [PATCH 2/4] Add nlocks to undocumented ets:info(T,stats)
---
erts/emulator/beam/erl_db.c | 7 ++++---
lib/stdlib/test/ets_SUITE.erl | 4 ++--
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/erts/emulator/beam/erl_db.c b/erts/emulator/beam/erl_db.c
index 0764e3008d..dc6e356fac 100644
--- a/erts/emulator/beam/erl_db.c
+++ b/erts/emulator/beam/erl_db.c
@@ -5211,7 +5211,7 @@ static Eterm table_info(Process* p, DbTable* tb, Eterm What)
Eterm* hp;
db_calc_stats_hash(&tb->hash, &stats);
- hp = HAlloc(p, 1 + 7 + FLOAT_SIZE_OBJECT*3);
+ hp = HAlloc(p, 1 + 8 + FLOAT_SIZE_OBJECT*3);
f.fd = stats.avg_chain_len;
avg = make_float(hp);
PUT_DOUBLE(f, hp);
@@ -5226,11 +5226,12 @@ static Eterm table_info(Process* p, DbTable* tb, Eterm What)
std_dev_exp = make_float(hp);
PUT_DOUBLE(f, hp);
hp += FLOAT_SIZE_OBJECT;
- ret = TUPLE7(hp, make_small(erts_atomic_read_nob(&tb->hash.nactive)),
+ ret = TUPLE8(hp, make_small(erts_atomic_read_nob(&tb->hash.nactive)),
avg, std_dev_real, std_dev_exp,
make_small(stats.min_chain_len),
make_small(stats.max_chain_len),
- make_small(stats.kept_items));
+ make_small(stats.kept_items),
+ make_small(tb->hash.nlocks));
}
else if (IS_CATREE_TABLE(tb->common.status)) {
DbCATreeStats stats;
diff --git a/lib/stdlib/test/ets_SUITE.erl b/lib/stdlib/test/ets_SUITE.erl
index fbd7d2fc69..249a27bd02 100644
--- a/lib/stdlib/test/ets_SUITE.erl
+++ b/lib/stdlib/test/ets_SUITE.erl
@@ -972,7 +972,7 @@ t_delete_all_objects(Config) when is_list(Config) ->
get_kept_objects(T) ->
case ets:info(T,stats) of
- {_,_,_,_,_,_,KO} ->
+ {_,_,_,_,_,_,KO,_} ->
KO;
_ ->
0
@@ -7064,7 +7064,7 @@ verify_table_load(T) ->
ordered_set -> ok;
_ ->
Stats = ets:info(T,stats),
- {Buckets,AvgLen,StdDev,ExpSD,_MinLen,_MaxLen,_} = Stats,
+ {Buckets,AvgLen,StdDev,ExpSD,_MinLen,_MaxLen,_,_} = Stats,
ok = if
AvgLen > 1.2 ->
io:format("Table overloaded: Stats=~p\n~p\n",
--
2.34.1