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.