From d848e6d87d0bdcd4290f9b2362981bb43ae1a871 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 9 May 2023 16:06:58 -0700 Subject: [PATCH] QDeadlineTimer: use std::chrono::ceil() in setRemainingTime() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In case the time is of less than 1 ns, we want to make sure it remains non-zero. Change-Id: I3e3bfef633af4130a03afffd175d9c4903271f80 Reviewed-by: Mårten Nordheim Reviewed-by: Ahmad Samir --- src/corelib/kernel/qdeadlinetimer.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/corelib/kernel/qdeadlinetimer.h b/src/corelib/kernel/qdeadlinetimer.h index c4be957985..dab5e055ae 100644 --- a/src/corelib/kernel/qdeadlinetimer.h +++ b/src/corelib/kernel/qdeadlinetimer.h @@ -109,10 +109,11 @@ public: template void setRemainingTime(std::chrono::duration remaining, Qt::TimerType type_ = Qt::CoarseTimer) { + using namespace std::chrono; if (remaining == remaining.max()) *this = QDeadlineTimer(Forever, type_); else - setPreciseRemainingTime(0, std::chrono::nanoseconds(remaining).count(), type_); + setPreciseRemainingTime(0, ceil(remaining).count(), type_); } std::chrono::nanoseconds remainingTimeAsDuration() const noexcept