aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/doc/src/ets.xml
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2019-03-15 16:08:04 +0100
committerSverker Eriksson <[email protected]>2019-03-15 16:08:04 +0100
commit80f103c64904b29e2f3d880148dd5b032cae0c02 (patch)
tree9ceb7fe8c4c65204c8d7f59e7b0260c321ee7c3b /lib/stdlib/doc/src/ets.xml
parent702ef9b0fa0a9b7345e3b397f23d8a76a2ac4df2 (diff)
parent0d550c80d4f19cc432e7de056169695d436c02a0 (diff)
downloadotp-80f103c64904b29e2f3d880148dd5b032cae0c02.tar.gz
otp-80f103c64904b29e2f3d880148dd5b032cae0c02.tar.bz2
otp-80f103c64904b29e2f3d880148dd5b032cae0c02.zip
Merge branch 'sverker/ets-select-fixation-owner-change-bug/OTP-15672'
* sverker/ets-select-fixation-owner-change-bug/OTP-15672: erts: Fix ets:select table fixation leak at owner change erts: Refactor common things into traverse_context_t stdlib: Clarify docs for ets:info(_, safe_fixed)
Diffstat (limited to 'lib/stdlib/doc/src/ets.xml')
-rw-r--r--lib/stdlib/doc/src/ets.xml16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/stdlib/doc/src/ets.xml b/lib/stdlib/doc/src/ets.xml
index d2ac6a75b1..2cb677785d 100644
--- a/lib/stdlib/doc/src/ets.xml
+++ b/lib/stdlib/doc/src/ets.xml
@@ -642,12 +642,11 @@ Error: fun containing local Erlang function calls
<p><marker id="info_2_safe_fixed_monotonic_time"/></p>
<p><c>Item=safe_fixed|safe_fixed_monotonic_time,
Value={FixationTime,Info}|false</c></p>
- <p>If the table has been fixed using
+ <p>If the table is fixed using
<seealso marker="#safe_fixtable/2">
<c>safe_fixtable/2</c></seealso>,
the call returns a tuple where <c>FixationTime</c> is the
- time when the table was first fixed by a process, which either
- is or is not one of the processes it is fixed by now.</p>
+ last time when the table changed from unfixed to fixed.</p>
<p>The format and value of <c>FixationTime</c> depends on
<c>Item</c>:</p>
<taglist>
@@ -679,8 +678,15 @@ Error: fun containing local Erlang function calls
table is fixed by now. <c>RefCount</c> is the value
of the reference counter and it keeps track of how many times
the table has been fixed by the process.</p>
- <p>If the table never has been fixed, the call returns
- <c>false</c>.</p>
+ <p>Table fixations are not limited to <seealso marker="#safe_fixtable/2">
+ <c>safe_fixtable/2</c></seealso>. Temporary fixations may also
+ be done by for example <seealso marker="#traversal">traversing
+ functions</seealso> like <c>select</c> and <c>match</c>. Such
+ table fixations are automatically released before the
+ corresponding functions returns, but they may be seen by a
+ concurrent call to
+ <c>ets:info(T,safe_fixed|safe_fixed_monotonic_time)</c>.</p>
+ <p>If the table is not fixed at all, the call returns <c>false</c>.</p>
</item>
<item>
<p><c>Item=stats, Value=tuple()</c></p>