QWaitCondition/Unix: fix execution with negative deadlines

pthread_cond_timedwait() doesn't like it.

Change-Id: I37ae26948fbc72fd1028fffd107e561cc54c4553
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
(cherry picked from commit d60472c2c436fc464d5a1b81538967676f71b6a0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Thiago Macieira 2024-10-23 07:55:39 -07:00 committed by Qt Cherry-pick Bot
parent d614b12da6
commit c68c0fb64c

View File

@ -74,7 +74,10 @@ static void qt_abstime_for_timeout(timespec *ts, QDeadlineTimer deadline)
using Clock =
std::conditional_t<SteadyClockClockId == CLOCK_REALTIME, system_clock, steady_clock>;
auto timePoint = deadline.deadline<Clock>();
*ts = durationToTimespec(timePoint.time_since_epoch());
if (timePoint < Clock::time_point{})
*ts = {};
else
*ts = durationToTimespec(timePoint.time_since_epoch());
}
class QWaitConditionPrivate