diff options
author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-03-16 11:19:17 +0000 |
---|---|---|
committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-03-16 11:19:17 +0000 |
commit | 157d3f401c729df060b32327385211b27a0e0105 (patch) | |
tree | 43aad0ca296ea6ff353836888d51a568c17dbe12 | |
parent | ade1d061c1f3ac97a02324f121e8ac1b03311ff5 (diff) | |
download | rabbitmq-server-157d3f401c729df060b32327385211b27a0e0105.tar.gz |
refactor
-rw-r--r-- | src/rabbit_amqqueue_process.erl | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index 5dbc8828..96352c13 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -451,6 +451,9 @@ should_confirm_message(#delivery{sender = ChPid, should_confirm_message(_Delivery, _State) -> immediately. +needs_confirming({eventually, _, _, _}) -> true; +needs_confirming(_) -> false. + record_confirm_message({eventually, ChPid, MsgSeqNo, MsgId}, State = #q{msg_id_to_channel = MTC}) -> State#q{msg_id_to_channel = dict:store(MsgId, {ChPid, MsgSeqNo}, MTC)}; @@ -483,15 +486,11 @@ attempt_delivery(#delivery{txn = none, %% we don't need an expiry here because messages are %% not being enqueued, so we use an empty %% message_properties. - NeedsConfirming = case Confirm of - {eventually, _, _, _} -> true; - _ -> false - end, {AckTag, BQS1} = BQ:publish_delivered( AckRequired, Message, (?BASE_MESSAGE_PROPERTIES)#message_properties{ - needs_confirming = NeedsConfirming}, + needs_confirming = needs_confirming(Confirm)}, BQS), {{Message, false, AckTag}, true, State1#q{backing_queue_state = BQS1}} @@ -517,13 +516,9 @@ deliver_or_enqueue(Delivery, State) -> {false, Confirm, State1 = #q{backing_queue = BQ, backing_queue_state = BQS}} -> #delivery{message = Message} = Delivery, - NeedsConfirming = case Confirm of - {eventually, _, _, _} -> true; - _ -> false - end, BQS1 = BQ:publish(Message, (message_properties(State)) #message_properties{ - needs_confirming = NeedsConfirming}, + needs_confirming = needs_confirming(Confirm)}, BQS), State2 = record_confirm_message(Confirm, State1), ensure_ttl_timer(State2#q{backing_queue_state = BQS1}) @@ -849,11 +844,9 @@ handle_call({deliver_immediately, Delivery}, _From, State) -> attempt_delivery(Delivery, should_confirm_message(Delivery, State), State), - State2 = case {Confirm, Delivered} of - {{eventually, _, _, _}, true} -> - record_confirm_message(Confirm, State); - _ -> - State1 + State2 = case Delivered andalso needs_confirming(Confirm) of + true -> record_confirm_message(Confirm, State); + false -> State1 end, reply(Delivered, State2); |