aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_db_catree.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-09-27 16:07:10 +0200
committerSverker Eriksson <[email protected]>2018-10-03 19:00:53 +0200
commitd88239752cdeacfac8858439334599b3ec471803 (patch)
tree8ffd956327a28e68e0f41afd6ab75ad4d2a55135 /erts/emulator/beam/erl_db_catree.h
parent4a67d1a104193ca0f5a0dc3f3dfc0e2b6df61f2f (diff)
downloadotp-d88239752cdeacfac8858439334599b3ec471803.tar.gz
otp-d88239752cdeacfac8858439334599b3ec471803.tar.bz2
otp-d88239752cdeacfac8858439334599b3ec471803.zip
erts: Improve deallocation of CATree nodes
Update table memory stats before scheduling free to not be dependent on deallocation order with main table struct.
Diffstat (limited to 'erts/emulator/beam/erl_db_catree.h')
-rw-r--r--erts/emulator/beam/erl_db_catree.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_db_catree.h b/erts/emulator/beam/erl_db_catree.h
index 406f3bb0f2..4d3e75bfe0 100644
--- a/erts/emulator/beam/erl_db_catree.h
+++ b/erts/emulator/beam/erl_db_catree.h
@@ -38,14 +38,12 @@ typedef struct {
Sint lock_statistics;
int is_valid; /* If this base node is still valid */
TreeDbTerm *root; /* The root of the sequential tree */
- DbTable * tab; /* Table ptr, used when freeing using thread progress */
ErtsThrPrgrLaterOp free_item; /* Used when freeing using thread progress */
struct DbTableCATreeNode * next; /* Used when gradually deleting */
} DbTableCATreeBaseNode;
typedef struct {
ErtsThrPrgrLaterOp free_item; /* Used when freeing using thread progress */
- DbTable* tab; /* Table ptr, used when freeing using thread progress */
erts_mtx_t lock; /* Used when joining route nodes */
int is_valid; /* If this route node is still valid */
erts_atomic_t left;