summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2011-01-14 13:25:29 +0000
committerAlexandru Scvortov <alexandru@rabbitmq.com>2011-01-14 13:25:29 +0000
commit9c4dd977b1c779b1e1b5138a62eeb48965af65fe (patch)
tree2e7e60edca10e4474a75d7dd297a616ad483d542 /src
parent2d0409667e82d86c55a18acfe2fb3fb9de56260e (diff)
parentc2bd1bb51b4e4da686fdd8a01fac68b613c6e860 (diff)
downloadrabbitmq-server-git-9c4dd977b1c779b1e1b5138a62eeb48965af65fe.tar.gz
merge bug23679 into default (unnecessary fsyncs when requeuing messages with confirms)
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_variable_queue.erl8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 665cac96d9..35e37df61e 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -710,10 +710,14 @@ tx_commit(Txn, Fun, MsgPropsFun,
end)}.
requeue(AckTags, MsgPropsFun, State) ->
+ MsgPropsFun1 = fun (MsgProps) ->
+ (MsgPropsFun(MsgProps)) #message_properties {
+ needs_confirming = false }
+ end,
a(reduce_memory_use(
ack(fun msg_store_release/3,
fun (#msg_status { msg = Msg, msg_props = MsgProps }, State1) ->
- {_SeqId, State2} = publish(Msg, MsgPropsFun(MsgProps),
+ {_SeqId, State2} = publish(Msg, MsgPropsFun1(MsgProps),
true, false, State1),
State2;
({IsPersistent, Guid, MsgProps}, State1) ->
@@ -721,7 +725,7 @@ requeue(AckTags, MsgPropsFun, State) ->
{{ok, Msg = #basic_message{}}, MSCState1} =
msg_store_read(MSCState, IsPersistent, Guid),
State2 = State1 #vqstate { msg_store_clients = MSCState1 },
- {_SeqId, State3} = publish(Msg, MsgPropsFun(MsgProps),
+ {_SeqId, State3} = publish(Msg, MsgPropsFun1(MsgProps),
true, true, State2),
State3
end,