[erlang-bugs] ets:new/2 and ets:all/0 concurrency issue
Thu Feb 6 12:57:14 CET 2014
> Just to clearify on the subject of ets:all() and concurrency.
> ets:all() does not give any guarantee of consistency. Each table
> created or deleted by other processes "during" the ets:all() call
> may or may not be included in the result.
> However, as pointed out, tables known to have been created/deleted
> *before* the call to ets:all() should of course be included/excluded
> in the result (or so they will in 17.0).
To 'know' may be a bit vague, so please could you clarify further
which guarantee ets:all() should provide (and may be include it in the
(1) When process A creates/deletes a table T and sends a message to
process B with the table id, process B will always see the change in
the result of ets:all()?
(2) Inside a single process ets:all() represents locally known changes
to table-existence (create/delete)?
More information about the erlang-bugs