Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
5.5.1, 5.9.1
-
Qt 5.5.1 x64 darwin
Description
When calling QThreadPool::waitForDone, calling QThreadPool::start on a different thread can lead to crashes.
QThreadPoolPrivate::reset() unlocks the QThreadPoolPrivate mutex while deleting threads. As QThreadPoolPrivate::tryStart uses QThreadPoolPrivate::expiredThreads and QThreadPoolPrivate::waitingThreads to select a thread to start the runnable on, the selected Thread might have been deleted in the meantime.
Attachments
For Gerrit Dashboard: QTBUG-62865 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
210866,1 | Enhance QThreadPool::waitForDone thread safety | 5.9 | qt/qtbase | Status: NEW | -1 | 0 |