diff --git a/src/assistant/help/qhelpcontentwidget.cpp b/src/assistant/help/qhelpcontentwidget.cpp index 8f38bcfd3de322f82852543a2f3289056a459400..1deaaf95a2d9f04b113986a3200fadec1a10e9e3 100644 --- a/src/assistant/help/qhelpcontentwidget.cpp +++ b/src/assistant/help/qhelpcontentwidget.cpp @@ -219,6 +219,11 @@ void QHelpContentProvider::stopCollecting() m_abort = true; m_mutex.unlock(); wait(); + // we need to force-set m_abort to false, because the thread might either have + // finished between the isRunning() check and the "m_abort = true" above, or the + // isRunning() check might already happen after the "m_abort = false" in the run() method, + // either way never resetting m_abort to false from within the run() method + m_abort = false; } qDeleteAll(m_rootItems); m_rootItems.clear();