summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-02-08 10:52:46 +0000
committerSimon MacMullen <simon@rabbitmq.com>2013-02-08 10:52:46 +0000
commite1199f009198360d869c0977545a2ff42a05e5ef (patch)
treee37d8c323162fe93b536dd93ed425f92ad67ed00
parente3b5b334349af6630bb1b764af090378cdaf73d3 (diff)
downloadrabbitmq-server-bug25429.tar.gz
Change to 'confirms' | 'other' | 'false'bug25429
-rw-r--r--src/rabbit_queue_index.erl7
-rw-r--r--src/rabbit_variable_queue.erl2
2 files changed, 6 insertions, 3 deletions
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl
index 6495115b..ea70208f 100644
--- a/src/rabbit_queue_index.erl
+++ b/src/rabbit_queue_index.erl
@@ -210,7 +210,7 @@
-spec(deliver/2 :: ([seq_id()], qistate()) -> qistate()).
-spec(ack/2 :: ([seq_id()], qistate()) -> qistate()).
-spec(sync/1 :: (qistate()) -> qistate()).
--spec(needs_sync/1 :: (qistate()) -> 'confirms' | boolean()).
+-spec(needs_sync/1 :: (qistate()) -> 'confirms' | 'other' | 'false').
-spec(flush/1 :: (qistate()) -> qistate()).
-spec(read/3 :: (seq_id(), seq_id(), qistate()) ->
{[{rabbit_types:msg_id(), seq_id(),
@@ -307,7 +307,10 @@ needs_sync(#qistate { journal_handle = undefined }) ->
false;
needs_sync(#qistate { journal_handle = JournalHdl, unconfirmed = UC }) ->
case gb_sets:is_empty(UC) of
- true -> file_handle_cache:needs_sync(JournalHdl);
+ true -> case file_handle_cache:needs_sync(JournalHdl) of
+ true -> other;
+ false -> false
+ end;
false -> confirms
end.
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index a23ebcb6..5d463f57 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -774,7 +774,7 @@ needs_timeout(State = #vqstate { index_state = IndexState,
target_ram_count = TargetRamCount }) ->
case rabbit_queue_index:needs_sync(IndexState) of
confirms -> timed;
- true -> idle;
+ other -> idle;
false when TargetRamCount == infinity -> false;
false -> case reduce_memory_use(
fun (_Quota, State1) -> {0, State1} end,