diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2012-10-12 08:57:15 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2012-10-12 08:57:15 +0100 |
| commit | 30c88fec4edcc57b7e24f5778fdeb762fb00d9c6 (patch) | |
| tree | 3b098c167bc9e2f217a83f1960913959a6d0f486 /src | |
| parent | 80931756a9ec0b45ed6a75ae5ce24e2ee4de4449 (diff) | |
| download | rabbitmq-server-git-30c88fec4edcc57b7e24f5778fdeb762fb00d9c6.tar.gz | |
monitor channel on discard
just as we do for publish/publish_delivered
w/o that there is a 20s delay in slaves cleaning up after channel
closure if all the messages sent on the channel were discarded.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mirror_queue_master.erl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl index d865d6751b..6dac280851 100644 --- a/src/rabbit_mirror_queue_master.erl +++ b/src/rabbit_mirror_queue_master.erl @@ -379,8 +379,10 @@ discard(Msg = #basic_message { id = MsgId }, ChPid, case dict:find(MsgId, SS) of error -> ok = gm:broadcast(GM, {discard, ChPid, Msg}), - State #state { backing_queue_state = BQ:discard(Msg, ChPid, BQS), - seen_status = dict:erase(MsgId, SS) }; + ensure_monitoring( + ChPid, State #state { + backing_queue_state = BQ:discard(Msg, ChPid, BQS), + seen_status = dict:erase(MsgId, SS) }); {ok, discarded} -> State end. |
