38qWaitFor(Functor predicate, QDeadlineTimer deadline = QDeadlineTimer(
39 defaultTryTimeout.load(std::memory_order_relaxed)))
46 if (waitForSucceeded(predicate()))
59 QCoreApplication::processEvents(QEventLoop::AllEvents);
60 QCoreApplication::sendPostedEvents(
nullptr, QEvent::DeferredDelete);
62 if (
auto predresult = predicate(); waitForSucceeded(predresult))
64 else if (!waitForMore(predresult))
67 using namespace std::chrono;
69 if (
const auto remaining = deadline.remainingTimeAsDuration(); remaining > 0ns)
70 qSleep((std::min)(10ms, ceil<milliseconds>(remaining)));
72 }
while (!deadline.hasExpired());
74 return waitForSucceeded(predicate());