diff options
| author | Matthias Radestock <matthias@lshift.net> | 2009-11-24 19:39:29 +0000 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2009-11-24 19:39:29 +0000 |
| commit | 82311d1c3e741d0edc5f8801e2c3a28ac171e3cd (patch) | |
| tree | 011de9c520c4cd6a3aadff761583098be2b0d848 /src | |
| parent | 5c433b51d4a70d268d2f42c61cda8b359763c5c3 (diff) | |
| download | rabbitmq-server-git-82311d1c3e741d0edc5f8801e2c3a28ac171e3cd.tar.gz | |
more cosmetic
Diffstat (limited to 'src')
| -rw-r--r-- | src/file_handle_cache.erl | 84 |
1 files changed, 41 insertions, 43 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl index 276af80183..ac86d35e77 100644 --- a/src/file_handle_cache.erl +++ b/src/file_handle_cache.erl @@ -196,17 +196,15 @@ copy(Src, Dest, Count) -> set_maximum_since_use(MaximumAge) -> Now = now(), lists:foreach( - fun ({{Ref, fhc_handle}, Handle = - #handle { hdl = Hdl, last_used_at = Then }}) -> + fun ({{Ref, fhc_handle}, Handle = #handle { hdl = Hdl, + last_used_at = Then }}) -> Age = timer:now_diff(Now, Then), case Hdl /= closed andalso Age >= MaximumAge of - true -> - case close1(Ref, Handle, soft) of - {ok, Handle1} -> put({Ref, fhc_handle}, Handle1); - _ -> ok - end; - false -> - ok + true -> case close1(Ref, Handle, soft) of + {ok, Handle1} -> put({Ref, fhc_handle}, Handle1); + _ -> ok + end; + false -> ok end; (_KeyValuePair) -> ok @@ -323,6 +321,12 @@ internal_copy(_Count, _Handles) -> %% Internal functions %%---------------------------------------------------------------------------- +is_reader(Mode) -> lists:member(read, Mode). + +is_writer(Mode) -> lists:member(write, Mode). + +is_appender(Mode) -> lists:member(append, Mode). + report_eldest() -> with_age_tree( fun (Tree) -> @@ -499,10 +503,37 @@ maybe_seek(NewOffset, Handle = #handle { hdl = Hdl, at_eof = AtEoF, case Result of {ok, Offset1} -> {Result, Handle #handle { at_eof = AtEoF1, offset = Offset1 }}; - {error, _} = Error -> + {error, _} = Error -> {Error, Handle} end. +needs_seek(AtEof, _CurOffset, DesiredOffset) + when DesiredOffset == cur orelse DesiredOffset == {cur, 0} -> + {AtEof, false}; +needs_seek(true, _CurOffset, DesiredOffset) + when DesiredOffset == eof orelse DesiredOffset == {eof, 0} -> + {true, false}; +needs_seek(false, _CurOffset, DesiredOffset) + when DesiredOffset == eof orelse DesiredOffset == {eof, 0} -> + {true, true}; +needs_seek(AtEof, 0, DesiredOffset) + when DesiredOffset == bof orelse DesiredOffset == {bof, 0} -> + {AtEof, false}; +needs_seek(AtEof, CurOffset, CurOffset) -> + {AtEof, false}; +needs_seek(true, CurOffset, {bof, DesiredOffset}) + when DesiredOffset >= CurOffset -> + {true, true}; +needs_seek(true, _CurOffset, {cur, DesiredOffset}) + when DesiredOffset > 0 -> + {true, true}; +needs_seek(true, CurOffset, DesiredOffset) %% same as {bof, DO} + when is_integer(DesiredOffset) andalso DesiredOffset >= CurOffset -> + {true, true}; +%% because we can't really track size, we could well end up at EoF and not know +needs_seek(_AtEoF, _CurOffset, _DesiredOffset) -> + {false, true}. + write_to_buffer(Data, Handle = #handle { hdl = Hdl, offset = Offset, write_buffer_size_limit = 0 }) -> Offset1 = Offset + iolist_size(Data), @@ -535,39 +566,6 @@ write_buffer(Handle = #handle { hdl = Hdl, offset = Offset, {Error, Handle} end. -is_reader(Mode) -> lists:member(read, Mode). - -is_writer(Mode) -> lists:member(write, Mode). - -is_appender(Mode) -> lists:member(append, Mode). - -needs_seek(AtEof, _CurOffset, DesiredOffset) - when DesiredOffset == cur orelse DesiredOffset == {cur, 0} -> - {AtEof, false}; -needs_seek(true, _CurOffset, DesiredOffset) - when DesiredOffset == eof orelse DesiredOffset == {eof, 0} -> - {true, false}; -needs_seek(false, _CurOffset, DesiredOffset) - when DesiredOffset == eof orelse DesiredOffset == {eof, 0} -> - {true, true}; -needs_seek(AtEof, 0, DesiredOffset) - when DesiredOffset == bof orelse DesiredOffset == {bof, 0} -> - {AtEof, false}; -needs_seek(AtEof, CurOffset, CurOffset) -> - {AtEof, false}; -needs_seek(true, CurOffset, {bof, DesiredOffset}) - when DesiredOffset >= CurOffset -> - {true, true}; -needs_seek(true, _CurOffset, {cur, DesiredOffset}) - when DesiredOffset > 0 -> - {true, true}; -needs_seek(true, CurOffset, DesiredOffset) %% same as {bof, DO} - when is_integer(DesiredOffset) andalso DesiredOffset >= CurOffset -> - {true, true}; -%% because we can't really track size, we could well end up at EoF and not know -needs_seek(_AtEoF, _CurOffset, _DesiredOffset) -> - {false, true}. - %%---------------------------------------------------------------------------- %% gen_server %%---------------------------------------------------------------------------- |
