diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2012-09-25 22:14:54 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2012-09-25 22:14:54 +0100 |
| commit | 9a3f41d67fd49d29ac21a88e29429f14a17f1b7a (patch) | |
| tree | 90d27ef810c4f826823782426497ef2b5673148b /src | |
| parent | 50afbee9c539463a25727b28b9469a96f35775bb (diff) | |
| download | rabbitmq-server-git-9a3f41d67fd49d29ac21a88e29429f14a17f1b7a.tar.gz | |
neater
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mirror_queue_slave.erl | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/rabbit_mirror_queue_slave.erl b/src/rabbit_mirror_queue_slave.erl index 5d20aae4e5..07a1d9e556 100644 --- a/src/rabbit_mirror_queue_slave.erl +++ b/src/rabbit_mirror_queue_slave.erl @@ -882,24 +882,22 @@ maybe_store_ack(true, MsgId, AckTag, State = #state { msg_id_ack = MA, State #state { msg_id_ack = dict:store(MsgId, {Num, AckTag}, MA), ack_num = Num + 1 }. +set_delta(0, State = #state { depth_delta = undefined }) -> + ok = record_synchronised(State#state.q), + State #state { depth_delta = 0 }; set_delta(NewDelta, State = #state { depth_delta = undefined }) -> - case NewDelta of - 0 -> ok = record_synchronised(State#state.q), - State #state { depth_delta = 0 }; - D when D > 0 -> State #state { depth_delta = D } - end; -set_delta(NewDelta, State = #state { depth_delta = Delta }) -> + true = NewDelta > 0, %% assertion + State #state { depth_delta = NewDelta }; +set_delta(NewDelta, State = #state { depth_delta = Delta }) -> update_delta(NewDelta - Delta, State). update_delta(_DeltaChange, State = #state { depth_delta = undefined }) -> State; -update_delta(DeltaChange, State = #state { depth_delta = Delta }) -> - NewDelta = Delta + DeltaChange, - case Delta of - 0 -> 0 = NewDelta, %% assertion: we cannot become unsync'ed - State; - _ -> set_delta(NewDelta, State #state { depth_delta = undefined }) - end. +update_delta( DeltaChange, State = #state { depth_delta = 0 }) -> + 0 = DeltaChange, %% assertion: we cannot become unsync'ed + State; +update_delta( DeltaChange, State = #state { depth_delta = Delta }) -> + set_delta(Delta + DeltaChange, State #state { depth_delta = undefined }). record_synchronised(#amqqueue { name = QName }) -> Self = self(), |
