mirror of
https://github.com/aria2/aria2.git
synced 2026-04-11 23:39:05 +00:00
Fixed rounding error in DownloadEngine::run().
This fixes the bug that executeCommand() with Command::STATUS_ALL is not called in every interval correctly because of rounding error in timer.
This commit is contained in:
@@ -141,6 +141,13 @@ void executeCommand(std::deque<Command*>& commands,
|
||||
}
|
||||
} // namespace
|
||||
|
||||
namespace {
|
||||
|
||||
// Rounding error in millis
|
||||
const int A2_DELTA = 10;
|
||||
|
||||
} // namespace
|
||||
|
||||
void DownloadEngine::run()
|
||||
{
|
||||
Timer cp;
|
||||
@@ -148,7 +155,7 @@ void DownloadEngine::run()
|
||||
while(!commands_.empty() || !routineCommands_.empty()) {
|
||||
global::wallclock.reset();
|
||||
calculateStatistics();
|
||||
if(cp.differenceInMillis(global::wallclock) >= refreshInterval_) {
|
||||
if(cp.differenceInMillis(global::wallclock) >= refreshInterval_-A2_DELTA) {
|
||||
refreshInterval_ = DEFAULT_REFRESH_INTERVAL;
|
||||
cp = global::wallclock;
|
||||
executeCommand(commands_, Command::STATUS_ALL);
|
||||
|
||||
Reference in New Issue
Block a user