diff options
| author | Matthew Sackman <matthew@lshift.net> | 2009-09-01 23:40:44 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2009-09-01 23:40:44 +0100 |
| commit | 5f06c3f77569736c3dcb426b1d2a6be9ef9cf685 (patch) | |
| tree | e14b3c1eb8ba649fc6e06508c88ad9ca4e3fc9ea | |
| parent | 387533145bbd4e95b46f6bb7e50cde4855bfdeab (diff) | |
| download | rabbitmq-server-git-5f06c3f77569736c3dcb426b1d2a6be9ef9cf685.tar.gz | |
refactoring of (no)reply1 to eliminate duplication
| -rw-r--r-- | src/rabbit_disk_queue.erl | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/src/rabbit_disk_queue.erl b/src/rabbit_disk_queue.erl index aa45e7486e..0afba2d6fa 100644 --- a/src/rabbit_disk_queue.erl +++ b/src/rabbit_disk_queue.erl @@ -762,31 +762,29 @@ dets_ets_match_object(#dqstate { msg_location_ets = MsgLocationEts, %% general helper functions %%---------------------------------------------------------------------------- -noreply(NewState) -> - noreply1(start_memory_timer(NewState)). - -noreply1(NewState = #dqstate { on_sync_txns = [], - commit_timer_ref = undefined }) -> - {noreply, NewState, hibernate}; -noreply1(NewState = #dqstate { commit_timer_ref = undefined }) -> - {noreply, start_commit_timer(NewState), 0}; -noreply1(NewState = #dqstate { on_sync_txns = [] }) -> - {noreply, stop_commit_timer(NewState), hibernate}; -noreply1(NewState) -> - {noreply, NewState, 0}. - -reply(Reply, NewState) -> - reply1(Reply, start_memory_timer(NewState)). - -reply1(Reply, NewState = #dqstate { on_sync_txns = [], - commit_timer_ref = undefined }) -> - {reply, Reply, NewState, hibernate}; -reply1(Reply, NewState = #dqstate { commit_timer_ref = undefined }) -> - {reply, Reply, start_commit_timer(NewState), 0}; -reply1(Reply, NewState = #dqstate { on_sync_txns = [] }) -> - {reply, Reply, stop_commit_timer(NewState), hibernate}; -reply1(Reply, NewState) -> - {reply, Reply, NewState, 0}. +noreply(State) -> + noreply1(start_memory_timer(State)). + +noreply1(State) -> + {State1, Timeout} = next_state(State), + {noreply, State1, Timeout}. + +reply(Reply, State) -> + reply1(Reply, start_memory_timer(State)). + +reply1(Reply, State) -> + {State1, Timeout} = next_state(State), + {reply, Reply, State1, Timeout}. + +next_state(State = #dqstate { on_sync_txns = [], + commit_timer_ref = undefined }) -> + {State, hibernate}; +next_state(State = #dqstate { commit_timer_ref = undefined }) -> + {start_commit_timer(State), 0}; +next_state(State = #dqstate { on_sync_txns = [] }) -> + {stop_commit_timer(State), hibernate}; +next_state(State) -> + {State, 0}. form_filename(Name) -> filename:join(base_directory(), Name). |
