summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2012-10-15 16:25:34 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2012-10-15 16:25:34 +0100
commitefc62091ec50587b7d18f1d6d80dca6702f95fd8 (patch)
tree67a082d5f77f23fd4a59be609d954050ca136014
parent56995d925ba4eb84171d23a9aa4ebb0ba7db4a8c (diff)
downloadrabbitmq-server-git-efc62091ec50587b7d18f1d6d80dca6702f95fd8.tar.gz
refactor: deal with 'publish' and 'publish_delivered' in separate clauses
-rw-r--r--src/rabbit_mirror_queue_slave.erl23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl
index aea3b54eff..3bd787d316 100644
--- a/src/rabbit_mirror_queue_slave.erl
+++ b/src/rabbit_mirror_queue_slave.erl
@@ -707,21 +707,20 @@ publish_or_discard(Status, ChPid, MsgId,
State1 #state { sender_queues = SQ1, msg_id_status = MS1 }.
-process_instruction({publish, Deliver, ChPid, MsgProps,
+process_instruction({publish, false, ChPid, MsgProps,
Msg = #basic_message { id = MsgId }}, State) ->
State1 = #state { backing_queue = BQ, backing_queue_state = BQS } =
publish_or_discard(published, ChPid, MsgId, State),
- {ok,
- case Deliver of
- false ->
- BQS1 = BQ:publish(Msg, MsgProps, ChPid, BQS),
- State1 #state { backing_queue_state = BQS1 };
- {true, AckRequired} ->
- {AckTag, BQS1} = BQ:publish_delivered(AckRequired, Msg, MsgProps,
- ChPid, BQS),
- maybe_store_ack(AckRequired, MsgId, AckTag,
- State1 #state { backing_queue_state = BQS1 })
- end};
+ BQS1 = BQ:publish(Msg, MsgProps, ChPid, BQS),
+ {ok, State1 #state { backing_queue_state = BQS1 }};
+process_instruction({publish, {true, AckRequired}, ChPid, MsgProps,
+ Msg = #basic_message { id = MsgId }}, State) ->
+ State1 = #state { backing_queue = BQ, backing_queue_state = BQS } =
+ publish_or_discard(published, ChPid, MsgId, State),
+ {AckTag, BQS1} = BQ:publish_delivered(AckRequired, Msg, MsgProps,
+ ChPid, BQS),
+ {ok, maybe_store_ack(AckRequired, MsgId, AckTag,
+ State1 #state { backing_queue_state = BQS1 })};
process_instruction({discard, ChPid, Msg = #basic_message { id = MsgId }},
State) ->
State1 = #state { backing_queue = BQ, backing_queue_state = BQS } =