diff options
author | Sverker Eriksson <[email protected]> | 2018-10-03 18:04:38 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2018-10-03 19:00:53 +0200 |
commit | d988f91307b2922de79f92d3b9aa160ac947b44c (patch) | |
tree | 4e38a0319158302b1847d0be474c8cb78e466eb7 /erts/emulator/beam/erl_db_catree.h | |
parent | b0fea529419514d9b173b84aae0f188f2e38c931 (diff) | |
download | otp-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.h | 10 |
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 { |