summaryrefslogtreecommitdiff
path: root/lib/mnesia/doc
diff options
context:
space:
mode:
authorDan Gudmundsson <dgud@erlang.org>2023-02-10 10:50:57 +0100
committerDan Gudmundsson <dgud@erlang.org>2023-02-10 10:50:57 +0100
commitd227e6bbb43a56bf93f2998542bfda6229471650 (patch)
tree13434824460853bc5a6c89ba53fadee2c05e65ba /lib/mnesia/doc
parente10e3eb8bd503ad7c154adedd2bfbc73677b7647 (diff)
parentcad25ed4ca03d87713b865d9a50cef28e3460bbe (diff)
downloaderlang-d227e6bbb43a56bf93f2998542bfda6229471650.tar.gz
Merge branch 'dgud/mnesia/dirty-fixes/OTP-18412' into maint
* dgud/mnesia/dirty-fixes/OTP-18412: Fix sticky sync locks mnesia: Swap slave with peer mnesia: Improve docs mnesia: Improve dirty writes consistency
Diffstat (limited to 'lib/mnesia/doc')
-rw-r--r--lib/mnesia/doc/src/mnesia.xml18
1 files changed, 13 insertions, 5 deletions
diff --git a/lib/mnesia/doc/src/mnesia.xml b/lib/mnesia/doc/src/mnesia.xml
index 13d2688ad1..729f5ebc03 100644
--- a/lib/mnesia/doc/src/mnesia.xml
+++ b/lib/mnesia/doc/src/mnesia.xml
@@ -2609,6 +2609,7 @@ mnesia:create_table(employee,
</list>
</desc>
</func>
+
<func>
<name name="transaction" arity="1" since=""/>
<name name="transaction" arity="2" clause_i="1" since=""/>
@@ -2674,13 +2675,20 @@ raise(Name, Amount) ->
several processes running on different nodes can concurrently
execute the function <c>raise/2</c> without interfering
with each other.</p>
- <p>Since Mnesia detects deadlocks, a transaction can be
- restarted any number of times. This function attempts a
- restart as specified in <c>Retries</c>. <c>Retries</c> must
- be an integer greater than 0 or the atom <c>infinity</c>.
- Default is <c>infinity</c>.</p>
+ <p>
+ Since Mnesia detects deadlocks, a transaction can be
+ restarted any number of times and therefore the <c>Fun</c> shall not
+ have any side effects such as waiting for specific messages.
+ This function attempts a restart as many times as specified in <c>Retries</c>.
+ <c>Retries</c> must be an integer greater than 0 or the atom <c>infinity</c>,
+ default is <c>infinity</c>.
+ Mnesia uses <c>exit</c> exceptions to signal that a transaction needs to be
+ restarted, thus a <c>Fun</c> must not catch <c>exit</c> exceptions with reason
+ <c>{aborted, term()}</c>.
+ </p>
</desc>
</func>
+
<func>
<name name="transform_table" arity="4" since=""/>
<fsummary>Changes format on all records in table <c>Tab</c>.</fsummary>