diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2011-01-12 13:03:00 +0000 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-01-12 13:03:00 +0000 |
commit | d4174bed54b2a6c058277aa2d6d6d163cc56a47d (patch) | |
tree | 317e7a2548cf62e9766268dab39c30c7a975fced | |
parent | 2e5e71b22c8d653330de495fcc47c5c986a38949 (diff) | |
download | rabbitmq-server-d4174bed54b2a6c058277aa2d6d6d163cc56a47d.tar.gz |
Mandatory delivery only needs to know that it got to the queue. Not the result of delivery
-rw-r--r-- | src/rabbit_amqqueue_process.erl | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index 1ca783e0..38b83117 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -857,10 +857,11 @@ handle_call({deliver_immediately, Delivery}, attempt_delivery(Delivery, record_confirm_message(Delivery, State)), reply(Delivered, State1); -handle_call({deliver, Delivery}, _From, State) -> - %% Synchronous, "mandatory" delivery mode - {Delivered, NewState} = deliver_or_enqueue(Delivery, State), - reply(Delivered, NewState); +handle_call({deliver, Delivery}, From, State) -> + %% Synchronous, "mandatory" delivery mode. Reply asap. + gen_server2:reply(From, true), + {_Delivered, NewState} = deliver_or_enqueue(Delivery, State), + noreply(NewState); handle_call({commit, Txn, ChPid}, From, State) -> NewState = commit_transaction(Txn, From, ChPid, State), |