summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2012-01-20 12:56:18 +0000
committerEmile Joubert <emile@rabbitmq.com>2012-01-20 12:56:18 +0000
commit15451297e73875dd79fcda706b60de54b322d163 (patch)
treefce3257806638112b833ccfdb86b6cb5cd25e547
parent11a48c32693e81034b45bf52fc6e48c76eb0d0c6 (diff)
downloadrabbitmq-server-15451297e73875dd79fcda706b60de54b322d163.tar.gz
Don't fsync after inner nested transactions
-rw-r--r--src/rabbit_misc.erl5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl
index a508794c..a5fef7c3 100644
--- a/src/rabbit_misc.erl
+++ b/src/rabbit_misc.erl
@@ -419,7 +419,10 @@ execute_mnesia_transaction(TxFun) ->
%% elsewhere and get a consistent result even when that read
%% executes on a different node.
case worker_pool:submit({mnesia, sync_transaction, [TxFun]}) of
- {atomic, Result} -> mnesia_sync:sync(),
+ {atomic, Result} -> case mnesia:is_transaction() of
+ true -> ok;
+ false -> mnesia_sync:sync()
+ end,
Result;
{aborted, Reason} -> throw({error, Reason})
end.