diff options
author | Sverker Eriksson <[email protected]> | 2018-03-12 11:50:42 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2018-05-08 14:38:41 +0200 |
commit | 3ab4ac0371b8646246c8b029dd89f39c3a6981b4 (patch) | |
tree | 2a1f87590829ec2a82d16f6afe2d604f0e8fa300 /erts/emulator/beam/erl_db.h | |
parent | c26bfdd48c8deabe9cc0f67badb0d8a95a641845 (diff) | |
download | otp-3ab4ac0371b8646246c8b029dd89f39c3a6981b4.tar.gz otp-3ab4ac0371b8646246c8b029dd89f39c3a6981b4.tar.bz2 otp-3ab4ac0371b8646246c8b029dd89f39c3a6981b4.zip |
erts: Make atomic ets:delete_all_objects yield
by using a cooperative strategy that will make
any process accessing the table execute delelete_all_objects_continue
until the table is empty.
This is not an optimal solution as concurrent threads will still
block on the table lock, but at least thread progress is made.
Diffstat (limited to 'erts/emulator/beam/erl_db.h')
-rw-r--r-- | erts/emulator/beam/erl_db.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_db.h b/erts/emulator/beam/erl_db.h index eb6da2c9fb..db86c81914 100644 --- a/erts/emulator/beam/erl_db.h +++ b/erts/emulator/beam/erl_db.h @@ -135,6 +135,10 @@ void erts_lcnt_enable_db_lock_count(DbTable *tb, int enable); void erts_lcnt_update_db_locks(int enable); #endif +#ifdef ETS_DBG_FORCE_TRAP +extern erts_aint_t erts_ets_dbg_force_trap; +#endif + #endif /* ERL_DB_H__ */ #if defined(ERTS_WANT_DB_INTERNAL__) && !defined(ERTS_HAVE_DB_INTERNAL__) |