aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_db_catree.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-10-03 18:04:38 +0200
committerSverker Eriksson <[email protected]>2018-10-03 19:00:53 +0200
commitd988f91307b2922de79f92d3b9aa160ac947b44c (patch)
tree4e38a0319158302b1847d0be474c8cb78e466eb7 /erts/emulator/beam/erl_db_catree.h
parentb0fea529419514d9b173b84aae0f188f2e38c931 (diff)
downloadotp-d988f91307b2922de79f92d3b9aa160ac947b44c.tar.gz
otp-d988f91307b2922de79f92d3b9aa160ac947b44c.tar.bz2
otp-d988f91307b2922de79f92d3b9aa160ac947b44c.zip
erts: Add lock order check of erl_db_catree base nodes
Lock order is key term order, so each base node needs its own key if lock check is enabled.
Diffstat (limited to 'erts/emulator/beam/erl_db_catree.h')
-rw-r--r--erts/emulator/beam/erl_db_catree.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_db_catree.h b/erts/emulator/beam/erl_db_catree.h
index 4d3e75bfe0..07a48d5bd3 100644
--- a/erts/emulator/beam/erl_db_catree.h
+++ b/erts/emulator/beam/erl_db_catree.h
@@ -40,6 +40,16 @@ typedef struct {
TreeDbTerm *root; /* The root of the sequential tree */
ErtsThrPrgrLaterOp free_item; /* Used when freeing using thread progress */
struct DbTableCATreeNode * next; /* Used when gradually deleting */
+
+#ifdef ERTS_ENABLE_LOCK_CHECK
+ struct {
+ Eterm key;
+ struct erl_off_heap_header* key_oh;
+ Uint key_size;
+ Eterm key_heap[1];
+ } lc;
+#endif
+ char end_of_struct__;
} DbTableCATreeBaseNode;
typedef struct {