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

openSUSE Build Service is sponsored by