diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2012-11-29 11:22:07 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2012-11-29 11:22:07 +0000 |
| commit | 65b0ccdd03729d4fa44096f36f36868d2b864140 (patch) | |
| tree | a3136a067883ab5af0eeb8fe71c5291e2cf93e91 | |
| parent | 02cf4f8c70db8516b6b809b89b776da3a4bd08d1 (diff) | |
| download | rabbitmq-server-git-65b0ccdd03729d4fa44096f36f36868d2b864140.tar.gz | |
Oops, didn't even compile that last one.
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 9 | ||||
| -rw-r--r-- | src/rabbit_mirror_queue_master.erl | 13 |
2 files changed, 12 insertions, 10 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index c932249e25..acbea4e9f6 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -1156,13 +1156,12 @@ handle_call({requeue, AckTags, ChPid}, From, State) -> handle_call(sync_mirrors, From, State = #q{backing_queue = rabbit_mirror_queue_master = BQ, backing_queue_state = BQS}) -> - S = fun(BQSN) -> State#state{backing_queue_state = BQSN} end, + S = fun(BQSN) -> State#q{backing_queue_state = BQSN} end, case BQ:depth(BQS) - BQ:len(BQS) of 0 -> gen_server2:reply(From, ok), - case rabbit_mirror_queue_master:sync_mirrors(BQS) of - {shutdown, Reason, BQS1} -> {stop, Reason, S(BQS1)}; - {ok, BQS1} -> noreply(S(BQS1)) - end + case rabbit_mirror_queue_master:sync_mirrors(BQS) of + {shutdown, Reason, BQS1} -> {stop, Reason, S(BQS1)}; + {ok, BQS1} -> noreply(S(BQS1)) end; _ -> reply({error, pending_acks}, State) end; diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl index 0e8748fd3e..439d1f4b1a 100644 --- a/src/rabbit_mirror_queue_master.erl +++ b/src/rabbit_mirror_queue_master.erl @@ -135,7 +135,7 @@ sync_mirrors(State = #state{name = QName}) -> sync_mirrors([], State = #state{name = QName}) -> rabbit_log:info("Synchronising ~s: nothing to do~n", [rabbit_misc:rs(QName)]), - State; + {ok, State}; sync_mirrors(SPids, State = #state { name = QName, gm = GM, backing_queue = BQ, @@ -145,10 +145,13 @@ sync_mirrors(SPids, State = #state { name = QName, Ref = make_ref(), Syncer = rabbit_mirror_queue_sync:master_prepare(Ref, SPids), gm:broadcast(GM, {sync_start, Ref, Syncer, SPids}), - BQS1 = rabbit_mirror_queue_sync:master_go(Syncer, Ref, QName, BQ, BQS), - rabbit_log:info("Synchronising ~s: complete~n", - [rabbit_misc:rs(QName)]), - State#state{backing_queue_state = BQS1}. + S = fun(BQSN) -> State#state{backing_queue_state = BQSN} end, + case rabbit_mirror_queue_sync:master_go(Syncer, Ref, QName, BQ, BQS) of + {shutdown, R, BQS1} -> {stop, R, S(BQS1)}; + {ok, BQS1} -> rabbit_log:info("Synchronising ~s: complete~n", + [rabbit_misc:rs(QName)]), + {ok, S(BQS1)} + end. terminate({shutdown, dropped} = Reason, State = #state { backing_queue = BQ, |
