summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlvaro Videla <videlalvaro@gmail.com>2015-08-18 15:36:04 +0200
committerAlvaro Videla <videlalvaro@gmail.com>2015-08-18 15:36:04 +0200
commit504ba41c9a5b1aa06c12147c640f7eb289d8ee74 (patch)
tree4da7806804b758e4f9e6c9ce6d0f57b1b68db130 /src
parentf20a1e271e6e7fbaefe442ebf3c62e2058202244 (diff)
parent85a3027903265e11c829f98667603d45e8e84995 (diff)
downloadrabbitmq-server-git-504ba41c9a5b1aa06c12147c640f7eb289d8ee74.tar.gz
Merge branch 'stable'
Diffstat (limited to 'src')
-rw-r--r--src/gen_server2.erl11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/gen_server2.erl b/src/gen_server2.erl
index 56b2720cac..23494399d2 100644
--- a/src/gen_server2.erl
+++ b/src/gen_server2.erl
@@ -636,8 +636,15 @@ extend_backoff({backoff, InitialTimeout, MinimumTimeout, DesiredHibPeriod}) ->
%%% The MAIN loop.
%%% ---------------------------------------------------
loop(GS2State = #gs2_state { time = hibernate,
- timeout_state = undefined }) ->
- pre_hibernate(GS2State);
+ timeout_state = undefined,
+ queue = Queue }) ->
+ case priority_queue:is_empty(Queue) of
+ true ->
+ pre_hibernate(GS2State);
+ false ->
+ process_next_msg(GS2State)
+ end;
+
loop(GS2State) ->
process_next_msg(drain(GS2State)).