diff options
author | Matthew Sackman <matthew@lshift.net> | 2009-12-16 19:14:53 +0000 |
---|---|---|
committer | Matthew Sackman <matthew@lshift.net> | 2009-12-16 19:14:53 +0000 |
commit | d7424357ff5d05d3307ff491c761befdf18ad95c (patch) | |
tree | 80a49eae9205188674fe69313268e0307b57c60e /src/rabbit_msg_file.erl | |
parent | 2cef7bbf99a623f978a6fe7f987f01b2460f0306 (diff) | |
download | rabbitmq-server-d7424357ff5d05d3307ff491c761befdf18ad95c.tar.gz |
Added accountancy for file size and sums thereof plus sums of valid data. This simplifies build_index slightly and complicates remove_message slightly. Also found that in delete_if_empty, was failing to close any file handle open on the file prior to it being deleted.
Diffstat (limited to 'src/rabbit_msg_file.erl')
-rw-r--r-- | src/rabbit_msg_file.erl | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/rabbit_msg_file.erl b/src/rabbit_msg_file.erl index c0826159..bf367ede 100644 --- a/src/rabbit_msg_file.erl +++ b/src/rabbit_msg_file.erl @@ -59,7 +59,7 @@ -spec(read/2 :: (io_device(), msg_size()) -> ({'ok', {msg_id(), msg()}} | {'error', any()})). -spec(scan/1 :: (io_device()) -> - {'ok', [{msg_id(), msg_size(), position()}]}). + {'ok', [{msg_id(), msg_size(), position()}], position()}). -endif. @@ -95,14 +95,14 @@ scan(FileHdl) -> scan(FileHdl, 0, []). scan(FileHdl, Offset, Acc) -> case read_next(FileHdl, Offset) of - eof -> {ok, Acc}; + eof -> {ok, Acc, Offset}; {corrupted, NextOffset} -> scan(FileHdl, NextOffset, Acc); {ok, {MsgId, TotalSize, NextOffset}} -> scan(FileHdl, NextOffset, [{MsgId, TotalSize, Offset} | Acc]); _KO -> %% bad message, but we may still have recovered some valid messages - {ok, Acc} + {ok, Acc, Offset} end. read_next(FileHdl, Offset) -> |