diff options
| author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2010-08-19 14:04:23 +0100 |
|---|---|---|
| committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2010-08-19 14:04:23 +0100 |
| commit | a6e46ef9b493d0eaff15de8e3d63c8bdfe046310 (patch) | |
| tree | 7b0289e3ea7e8d829e25f25670a6c72c341e7f47 | |
| parent | bc72dcabf49e3ecd43bb36a6d9641decfc630672 (diff) | |
| download | rabbitmq-server-git-a6e46ef9b493d0eaff15de8e3d63c8bdfe046310.tar.gz | |
don't do any unnecessary work when publishing in confirm mode
| -rw-r--r-- | src/rabbit_router.erl | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/rabbit_router.erl b/src/rabbit_router.erl index 179c45bb41..3d270916d5 100644 --- a/src/rabbit_router.erl +++ b/src/rabbit_router.erl @@ -66,11 +66,12 @@ deliver(QPids, Delivery = #delivery{mandatory = false, delegate:invoke_no_result( QPids, fun (Pid) -> rabbit_amqqueue:deliver(Pid, Delivery) end), case {QPids, MsgSeqNo} of - {[], _} -> + {_, undefined} -> ok; + {[], _} -> %% No queues will get the message. This is fine, so we %% just confirm it. rabbit_channel:confirm(self(), MsgSeqNo); - _ -> ok + _ -> ok end, maybe_inform_channel(MsgSeqNo, QPids), {routed, QPids}; @@ -129,7 +130,7 @@ check_delivery(true, _ , {false, []}) -> {unroutable, []}; check_delivery(_ , true, {_ , []}) -> {not_delivered, []}; check_delivery(_ , _ , {_ , Qs}) -> {routed, Qs}. -maybe_inform_channel(undefine, _) -> +maybe_inform_channel(undefined, _) -> ok; maybe_inform_channel(MsgSeqNo, QPids) -> gen_server2:cast(self(), {msg_sent_to_queues, MsgSeqNo, QPids}). |
