diff options
-rw-r--r-- | src/rabbit_queue_index.erl | 7 | ||||
-rw-r--r-- | src/rabbit_variable_queue.erl | 2 |
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, |