diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2013-01-04 12:24:44 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2013-01-04 12:24:44 +0000 |
commit | 1d15ffde6cf646d05861d6cd71d4c4519f36c798 (patch) | |
tree | e52afb2d50f8d0ffbf59c55ff8b171c7a9380225 /src/rabbit_mirror_queue_master.erl | |
parent | f6f0d2fe572ae7697d91139396d634864cecdf04 (diff) | |
parent | 4aa86fc039e0fdd7adf41b3b4e50b821c753a129 (diff) | |
download | rabbitmq-server-1d15ffde6cf646d05861d6cd71d4c4519f36c798.tar.gz |
Merge in bug24407.
Diffstat (limited to 'src/rabbit_mirror_queue_master.erl')
-rw-r--r-- | src/rabbit_mirror_queue_master.erl | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl index 0df7ea1c..b5f72cad 100644 --- a/src/rabbit_mirror_queue_master.erl +++ b/src/rabbit_mirror_queue_master.erl @@ -28,7 +28,7 @@ -export([promote_backing_queue_state/8, sender_death_fun/0, depth_fun/0]). --export([init_with_existing_bq/3, stop_mirroring/1, sync_mirrors/1]). +-export([init_with_existing_bq/3, stop_mirroring/1, sync_mirrors/3]). -behaviour(rabbit_backing_queue). @@ -46,10 +46,11 @@ -ifdef(use_specs). --export_type([death_fun/0, depth_fun/0]). +-export_type([death_fun/0, depth_fun/0, stats_fun/0]). -type(death_fun() :: fun ((pid()) -> 'ok')). -type(depth_fun() :: fun (() -> 'ok')). +-type(stats_fun() :: fun ((any()) -> 'ok')). -type(master_state() :: #state { name :: rabbit_amqqueue:name(), gm :: pid(), coordinator :: pid(), @@ -68,7 +69,7 @@ -spec(init_with_existing_bq/3 :: (rabbit_types:amqqueue(), atom(), any()) -> master_state()). -spec(stop_mirroring/1 :: (master_state()) -> {atom(), any()}). --spec(sync_mirrors/1 :: (master_state()) -> +-spec(sync_mirrors/3 :: (stats_fun(), stats_fun(), master_state()) -> {'ok', master_state()} | {stop, any(), master_state()}). -endif. @@ -126,7 +127,8 @@ stop_mirroring(State = #state { coordinator = CPid, stop_all_slaves(shutdown, State), {BQ, BQS}. -sync_mirrors(State = #state { name = QName, +sync_mirrors(HandleInfo, EmitStats, + State = #state { name = QName, gm = GM, backing_queue = BQ, backing_queue_state = BQS }) -> @@ -140,7 +142,8 @@ sync_mirrors(State = #state { name = QName, Syncer = rabbit_mirror_queue_sync:master_prepare(Ref, Log, SPids), gm:broadcast(GM, {sync_start, Ref, Syncer, SPids}), S = fun(BQSN) -> State#state{backing_queue_state = BQSN} end, - case rabbit_mirror_queue_sync:master_go(Syncer, Ref, Log, BQ, BQS) of + case rabbit_mirror_queue_sync:master_go( + Syncer, Ref, Log, HandleInfo, EmitStats, BQ, BQS) of {shutdown, R, BQS1} -> {stop, R, S(BQS1)}; {sync_died, R, BQS1} -> Log("~p", [R]), {ok, S(BQS1)}; |