QThreadPool: store the expiryTimeout in a std::chrono type

For future-proofing. I'm not changing the front-end API because it's
seldom used.

Task-number: QTBUG-125107
Change-Id: Ic5b1273bb0204c31afd8fffd17ccf9ac42f57762
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
This commit is contained in:
Thiago Macieira 2024-05-06 11:27:56 -07:00
parent 179e79b18d
commit 1f2a230b89
2 changed files with 4 additions and 5 deletions

View File

@ -593,18 +593,17 @@ bool QThreadPool::tryStart(QRunnable *runnable)
int QThreadPool::expiryTimeout() const int QThreadPool::expiryTimeout() const
{ {
using namespace std::chrono;
Q_D(const QThreadPool); Q_D(const QThreadPool);
QMutexLocker locker(&d->mutex); QMutexLocker locker(&d->mutex);
return d->expiryTimeout; return duration_cast<milliseconds>(d->expiryTimeout).count();
} }
void QThreadPool::setExpiryTimeout(int expiryTimeout) void QThreadPool::setExpiryTimeout(int expiryTimeout)
{ {
Q_D(QThreadPool); Q_D(QThreadPool);
QMutexLocker locker(&d->mutex); QMutexLocker locker(&d->mutex);
if (d->expiryTimeout == expiryTimeout) d->expiryTimeout = std::chrono::milliseconds(expiryTimeout);
return;
d->expiryTimeout = expiryTimeout;
} }
/*! \property QThreadPool::maxThreadCount /*! \property QThreadPool::maxThreadCount

View File

@ -143,7 +143,7 @@ public:
QWaitCondition noActiveThreads; QWaitCondition noActiveThreads;
QString objectName; QString objectName;
int expiryTimeout = 30000; std::chrono::duration<int, std::milli> expiryTimeout = std::chrono::seconds(30);
int requestedMaxThreadCount = QThread::idealThreadCount(); // don't use this directly int requestedMaxThreadCount = QThread::idealThreadCount(); // don't use this directly
int reservedThreads = 0; int reservedThreads = 0;
int activeThreads = 0; int activeThreads = 0;