diff options
author | Rickard Green <[email protected]> | 2017-02-17 18:23:11 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2017-03-02 17:00:42 +0100 |
commit | d1ad45f0940697f04f334c078a2287cd51e45ad5 (patch) | |
tree | 71ebcd6b08388ad06cba85eaa1669a2e46133d8a /erts/emulator/beam/erl_db_util.h | |
parent | ee7494d5d5c3388a8bb1f012f6411a90f89d8ea6 (diff) | |
download | otp-d1ad45f0940697f04f334c078a2287cd51e45ad5.tar.gz otp-d1ad45f0940697f04f334c078a2287cd51e45ad5.tar.bz2 otp-d1ad45f0940697f04f334c078a2287cd51e45ad5.zip |
Implement ets:all() using scheduler specific data
Diffstat (limited to 'erts/emulator/beam/erl_db_util.h')
-rw-r--r-- | erts/emulator/beam/erl_db_util.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_db_util.h b/erts/emulator/beam/erl_db_util.h index 60dedd5713..3c13035ec5 100644 --- a/erts/emulator/beam/erl_db_util.h +++ b/erts/emulator/beam/erl_db_util.h @@ -75,9 +75,6 @@ typedef struct db_term { */ } DbTerm; -union db_table; -typedef union db_table DbTable; - #define DB_MUST_RESIZE 1 #define DB_NEW_OBJECT 2 #define DB_INC_TRY_GROW 4 @@ -203,6 +200,11 @@ typedef struct db_fixation { struct db_fixation *next; } DbFixation; +typedef struct { + DbTable *next; + DbTable *prev; +} DbTableList; + /* * This structure contains data for all different types of database * tables. Note that these fields must match the same fields @@ -214,6 +216,7 @@ typedef struct db_fixation { typedef struct db_table_common { erts_smp_refc_t refc; /* reference count of table struct */ erts_smp_refc_t fix_count;/* fixation counter */ + DbTableList all; #ifdef ERTS_SMP erts_smp_rwmtx_t rwlock; /* rw lock on table */ erts_smp_mtx_t fixlock; /* Protects fixations,megasec,sec,microsec */ |