From 2f5651cd1a1efb136179cdbcb3b29ed0cc11ca2a Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 10 Jun 2024 13:40:32 +0800 Subject: HALF WORK: still need to fix invalid size value in Buffer. NEED TEST: BufferStream, AutoReadStream, SubProcess. --- src/common/io/AutoReadStream.cpp | 1 + src/common/io/BufferStream.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src/common/io') diff --git a/src/common/io/AutoReadStream.cpp b/src/common/io/AutoReadStream.cpp index edb77a47..bc43fa81 100644 --- a/src/common/io/AutoReadStream.cpp +++ b/src/common/io/AutoReadStream.cpp @@ -6,6 +6,7 @@ namespace cru::io { AutoReadStream::AutoReadStream(Stream* stream, bool auto_delete, const AutoReadStreamOptions& options) { auto buffer_stream_options = options.GetBufferStreamOptions(); + stream_ = stream; size_per_read_ = buffer_stream_options.GetBlockSizeOrDefault(); buffer_stream_ = std::make_unique(buffer_stream_options); background_thread_ = std::thread(&AutoReadStream::BackgroundThreadRun, this); diff --git a/src/common/io/BufferStream.cpp b/src/common/io/BufferStream.cpp index b2467a17..3060a608 100644 --- a/src/common/io/BufferStream.cpp +++ b/src/common/io/BufferStream.cpp @@ -67,7 +67,7 @@ Index BufferStream::Write(const std::byte* buffer, Index offset, Index size) { } condition_variable_.wait(lock, [this] { - return buffer_list_.size() < max_block_count_ || + return max_block_count_ <= 0 || buffer_list_.size() < max_block_count_ || buffer_list_.back().GetBackFree() > 0; }); -- cgit v1.2.3