diff options
| author | Matthew Sackman <matthew@rabbitmq.com> | 2011-06-26 18:17:00 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@rabbitmq.com> | 2011-06-26 18:17:00 +0100 |
| commit | 469397027252324ba4e5f02068a12a2c859a4b08 (patch) | |
| tree | 50931b0fe7f8062e0693c8d5b59b3caa249811c7 /src | |
| parent | 9ef691695d49e5217db86daa08f50a1ec0a7e39a (diff) | |
| download | rabbitmq-server-git-469397027252324ba4e5f02068a12a2c859a4b08.tar.gz | |
Slaves request length when they join.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mirror_queue_coordinator.erl | 6 | ||||
| -rw-r--r-- | src/rabbit_mirror_queue_slave.erl | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/rabbit_mirror_queue_coordinator.erl b/src/rabbit_mirror_queue_coordinator.erl index 2727c1d094..ab0b2362e9 100644 --- a/src/rabbit_mirror_queue_coordinator.erl +++ b/src/rabbit_mirror_queue_coordinator.erl @@ -358,6 +358,10 @@ handle_cast({gm_deaths, Deaths}, {stop, normal, State} end; +handle_cast(request_length, State) -> + %% TODO: something + noreply(State); + handle_cast({ensure_monitoring, Pids}, State = #state { monitors = Monitors }) -> Monitors1 = @@ -408,6 +412,8 @@ members_changed([CPid], _Births, Deaths) -> handle_msg([_CPid], _From, heartbeat) -> ok; +handle_msg([CPid], _From, request_length = Msg) -> + ok = gen_server2:cast(CPid, Msg); handle_msg([CPid], _From, {ensure_monitoring, _Pids} = Msg) -> ok = gen_server2:cast(CPid, Msg); handle_msg([_CPid], _From, _Msg) -> diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl index 81e8330174..8a365e6acb 100644 --- a/src/rabbit_mirror_queue_slave.erl +++ b/src/rabbit_mirror_queue_slave.erl @@ -103,6 +103,7 @@ init([#amqqueue { name = QueueName } = Q]) -> BQS = bq_init(BQ, Q, false), rabbit_event:notify(queue_slave_created, [{name, QueueName}, {pid, self()}, {master_pid, MPid}]), + ok = gm:broadcast(GM, request_length), {ok, #state { q = Q, gm = GM, master_pid = MPid, @@ -305,6 +306,9 @@ members_changed([SPid], _Births, Deaths) -> handle_msg([_SPid], _From, heartbeat) -> ok; +handle_msg([_SPid], _From, request_length) -> + %% This is only of value to the master + ok; handle_msg([_SPid], _From, {ensure_monitoring, _Pid}) -> %% This is only of value to the master ok; |
