diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2010-09-28 13:17:01 +0100 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2010-09-28 13:17:01 +0100 |
commit | 02a98db3e0f896665d129777f44ff3abcdd76c61 (patch) | |
tree | b2ba6e5b839479ebd61af0f8bb11fe212b6ab9e7 | |
parent | a9470be7348b2316ab0352a2ea8a7bf99856c903 (diff) | |
download | rabbitmq-server-bug23310.tar.gz |
Factoring open modes betterbug23310
-rw-r--r-- | src/rabbit_queue_index.erl | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl index a2d957b5..0b98290c 100644 --- a/src/rabbit_queue_index.erl +++ b/src/rabbit_queue_index.erl @@ -160,6 +160,8 @@ -define(PUB, {_, _}). %% {Guid, IsPersistent} -define(READ_MODE, [binary, raw, read]). +-define(READ_AHEAD_MODE, [{read_ahead, ?SEGMENT_TOTAL_SIZE} | ?READ_MODE]). +-define(WRITE_MODE, [write | ?READ_MODE]). %%---------------------------------------------------------------------------- @@ -580,7 +582,7 @@ append_journal_to_segment(#segment { journal_entries = JEntries, path = Path } = Segment) -> case array:sparse_size(JEntries) of 0 -> Segment; - _ -> {ok, Hdl} = file_handle_cache:open(Path, [write | ?READ_MODE], + _ -> {ok, Hdl} = file_handle_cache:open(Path, ?WRITE_MODE, [{write_buffer, infinity}]), array:sparse_foldl(fun write_entry_to_segment/3, Hdl, JEntries), ok = file_handle_cache:close(Hdl), @@ -591,7 +593,7 @@ get_journal_handle(State = #qistate { journal_handle = undefined, dir = Dir }) -> Path = filename:join(Dir, ?JOURNAL_FILENAME), ok = filelib:ensure_dir(Path), - {ok, Hdl} = file_handle_cache:open(Path, [write | ?READ_MODE], + {ok, Hdl} = file_handle_cache:open(Path, ?WRITE_MODE, [{write_buffer, infinity}]), {Hdl, State #qistate { journal_handle = Hdl }}; get_journal_handle(State = #qistate { journal_handle = Hdl }) -> @@ -788,8 +790,7 @@ segment_entries_foldr(Fun, Init, load_segment(KeepAcked, #segment { path = Path }) -> case filelib:is_file(Path) of false -> {array_new(), 0}; - true -> Mode = [{read_ahead, ?SEGMENT_TOTAL_SIZE} | ?READ_MODE], - {ok, Hdl} = file_handle_cache:open(Path, Mode, []), + true -> {ok, Hdl} = file_handle_cache:open(Path, ?READ_AHEAD_MODE, []), {ok, 0} = file_handle_cache:position(Hdl, bof), Res = load_segment_entries(KeepAcked, Hdl, array_new(), 0), ok = file_handle_cache:close(Hdl), |