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 | b151d6930710aea7ae7220678208cea69c968a8c (patch) | |
tree | 90d27ef810c4f826823782426497ef2b5673148b | |
parent | 5105a8ae3f3d2901f2161cd4cf3229e297990cfa (diff) | |
download | rabbitmq-server-b151d6930710aea7ae7220678208cea69c968a8c.tar.gz |
neater
-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 5d20aae4..07a1d9e5 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(), |