summaryrefslogtreecommitdiff
path: root/src/rabbit_msg_file.erl
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2009-10-28 13:43:35 +0000
committerMatthew Sackman <matthew@lshift.net>2009-10-28 13:43:35 +0000
commit0ea9fc147f6bbffc6173fa74cec9664525a4fa08 (patch)
tree36ed11769ef4e8d16534d793170a934fc9f663c7 /src/rabbit_msg_file.erl
parent9312697b3a360f90764e71e377c922606b3feac8 (diff)
downloadrabbitmq-server-git-0ea9fc147f6bbffc6173fa74cec9664525a4fa08.tar.gz
Added comment explaining delightful code
Diffstat (limited to 'src/rabbit_msg_file.erl')
-rw-r--r--src/rabbit_msg_file.erl5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/rabbit_msg_file.erl b/src/rabbit_msg_file.erl
index 1b9587fbde..ea50cc6432 100644
--- a/src/rabbit_msg_file.erl
+++ b/src/rabbit_msg_file.erl
@@ -118,6 +118,11 @@ read_next(FileHdl, Offset) ->
KO -> KO
end;
true -> %% all good, let's continue
+ %% Here we take option 5 from
+ %% http://www.erlang.org/cgi-bin/ezmlm-cgi?2:mss:1569
+ %% in which we read the MsgId as a number, and
+ %% then convert it back to a binary in order to
+ %% work around bugs in Erlang's GC.
MsgIdSizeBits = MsgIdSize * 8,
case file:read(FileHdl, MsgIdSize) of
{ok, <<MsgIdNum:MsgIdSizeBits>>} ->