summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-09-01 23:40:44 +0100
committerMatthew Sackman <matthew@lshift.net>2009-09-01 23:40:44 +0100
commit5f06c3f77569736c3dcb426b1d2a6be9ef9cf685 (patch)
treee14b3c1eb8ba649fc6e06508c88ad9ca4e3fc9ea
parent387533145bbd4e95b46f6bb7e50cde4855bfdeab (diff)
downloadrabbitmq-server-git-5f06c3f77569736c3dcb426b1d2a6be9ef9cf685.tar.gz
refactoring of (no)reply1 to eliminate duplication
-rw-r--r--src/rabbit_disk_queue.erl48
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).