This commit is contained in:
@ -36,11 +36,13 @@ direct_open_file::direct_open_file(std::uint64_t chunk_size,
|
|||||||
ring_state_(ring_size),
|
ring_state_(ring_size),
|
||||||
total_chunks_(static_cast<std::size_t>(
|
total_chunks_(static_cast<std::size_t>(
|
||||||
utils::divide_with_ceiling(fsi_.size, chunk_size))) {
|
utils::divide_with_ceiling(fsi_.size, chunk_size))) {
|
||||||
|
if (fsi_.size > 0U) {
|
||||||
|
ring_state_.resize(std::min(total_chunks_, ring_state_.size()));
|
||||||
|
|
||||||
ring_end_ =
|
ring_end_ =
|
||||||
std::min(total_chunks_ - 1U, ring_begin_ + ring_state_.size() - 1U);
|
std::min(total_chunks_ - 1U, ring_begin_ + ring_state_.size() - 1U);
|
||||||
ring_state_.set(0U, ring_state_.size(), true);
|
ring_state_.set(0U, ring_state_.size(), true);
|
||||||
|
|
||||||
if (fsi_.size > 0U) {
|
|
||||||
reader_thread_ =
|
reader_thread_ =
|
||||||
std::make_unique<std::thread>([this]() { background_reader_thread(); });
|
std::make_unique<std::thread>([this]() { background_reader_thread(); });
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user