提交 9f69ff12 编写于 作者: F Frederick Cheung 提交者: Jeremy Kemper

Squash memory leak when calling flush with an empty buffer

[#1552 state:committed]
Signed-off-by: NJeremy Kemper <jeremy@bitsweat.net>
上级 d45e2c73
......@@ -96,9 +96,12 @@ def flush
@guard.synchronize do
unless buffer.empty?
old_buffer = buffer
clear_buffer
@log.write(old_buffer.join)
end
# Important to do this even if buffer was empty or else @buffer will
# accumulate empty arrays for each request where nothing was logged.
clear_buffer
end
end
......
......@@ -137,4 +137,10 @@ def test_logger_should_maintain_separate_buffers_for_each_thread
assert @output.string.include?("a\nb\nc\n")
assert @output.string.include?("x\ny\nz\n")
end
def test_flush_should_remove_empty_buffers
@logger.send :buffer
@logger.expects :clear_buffer
@logger.flush
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册