diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2012-10-15 16:25:34 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2012-10-15 16:25:34 +0100 |
| commit | efc62091ec50587b7d18f1d6d80dca6702f95fd8 (patch) | |
| tree | 67a082d5f77f23fd4a59be609d954050ca136014 /src | |
| parent | 56995d925ba4eb84171d23a9aa4ebb0ba7db4a8c (diff) | |
| download | rabbitmq-server-git-efc62091ec50587b7d18f1d6d80dca6702f95fd8.tar.gz | |
refactor: deal with 'publish' and 'publish_delivered' in separate clauses
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mirror_queue_slave.erl | 23 |
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 } = |
