aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_db.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-10-16 20:04:33 +0200
committerSverker Eriksson <[email protected]>2018-10-23 12:36:28 +0200
commit375a1f5c29fd2d3b537e117149e78b0ac61e263f (patch)
tree10c2af9a4a2825cf4344c51f7d648eff71f1aff1 /erts/emulator/beam/erl_db.c
parent89133a5589c32529bb33d53de0ae0f0c687ace9c (diff)
downloadotp-375a1f5c29fd2d3b537e117149e78b0ac61e263f.tar.gz
otp-375a1f5c29fd2d3b537e117149e78b0ac61e263f.tar.bz2
otp-375a1f5c29fd2d3b537e117149e78b0ac61e263f.zip
erts: Implement ets:info(T, stats) for catrees
{RouteNodes, BaseNodes, MaxRouteTreeDepth}
Diffstat (limited to 'erts/emulator/beam/erl_db.c')
-rw-r--r--erts/emulator/beam/erl_db.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_db.c b/erts/emulator/beam/erl_db.c
index 3653c0bf7c..337efa94bd 100644
--- a/erts/emulator/beam/erl_db.c
+++ b/erts/emulator/beam/erl_db.c
@@ -4247,9 +4247,20 @@ static Eterm table_info(Process* p, DbTable* tb, Eterm What)
make_small(stats.max_chain_len),
make_small(stats.kept_items));
}
- else {
+ else if (IS_CATREE_TABLE(tb->common.status)) {
+ DbCATreeStats stats;
+ Eterm* hp;
+
+ db_calc_stats_catree(&tb->catree, &stats);
+ hp = HAlloc(p, 4);
+ ret = TUPLE3(hp,
+ make_small(stats.route_nodes),
+ make_small(stats.base_nodes),
+ make_small(stats.max_depth));
+
+ }
+ else
ret = am_false;
- }
}
return ret;
}