Disk: Allow full timeout for each disk read attempt

add-device-sharing
Jonathan Schwartz 2022-04-19 15:29:07 -04:00 committed by Paul Hollinsky
parent 44ad06d4bb
commit c08c0dd893
1 changed files with 6 additions and 6 deletions

View File

@ -25,12 +25,12 @@ optional<uint64_t> ExtExtractorDiskReadDriver::readLogicalDiskAligned(Communicat
return nullopt; return nullopt;
optional<uint64_t> ret; optional<uint64_t> ret;
// timeout loop assuming unsigned int attempts = 4;
const auto perAttemptTimeout = std::chrono::milliseconds(500); while (attempts-- > 0)
while(timeout > std::chrono::milliseconds(0) && !ret.has_value()) { {
auto start = std::chrono::steady_clock::now(); ret = attemptReadLogicalDiskAligned(com, report, pos, into, amount, timeout);
ret = attemptReadLogicalDiskAligned(com, report, pos, into, amount, perAttemptTimeout); if (ret.has_value())
timeout -= std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - start); break;
} }
return ret; return ret;
} }