aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_db_hash.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-05-04 20:13:29 +0200
committerSverker Eriksson <[email protected]>2018-05-08 14:38:43 +0200
commit0657a616adc74bf71342053539c807031fa9d162 (patch)
treeffbd81852f7a60a267d1a2fdc6524d85e7f03371 /erts/emulator/beam/erl_db_hash.h
parent7c7c10014f8c77f66a805def5ac52bb06402aeb4 (diff)
downloadotp-0657a616adc74bf71342053539c807031fa9d162.tar.gz
otp-0657a616adc74bf71342053539c807031fa9d162.tar.bz2
otp-0657a616adc74bf71342053539c807031fa9d162.zip
erts: Optimize ets delete all in fixed table
by only allocating one FixedDeletion with the new "all" flag instead of one FixedDeletion per slot.
Diffstat (limited to 'erts/emulator/beam/erl_db_hash.h')
-rw-r--r--erts/emulator/beam/erl_db_hash.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_db_hash.h b/erts/emulator/beam/erl_db_hash.h
index 127512e1fe..d48343378d 100644
--- a/erts/emulator/beam/erl_db_hash.h
+++ b/erts/emulator/beam/erl_db_hash.h
@@ -24,7 +24,8 @@
#include "erl_db_util.h" /* DbTerm & DbTableCommon */
typedef struct fixed_deletion {
- int slot;
+ UWord slot : sizeof(UWord)*8 - 1;
+ UWord all : 1;
struct fixed_deletion *next;
} FixedDeletion;