diff --git a/kde/gui/lib9pstreamer.cpp b/kde/gui/lib9pstreamer.cpp index f9586b6..b8f1b88 100644 --- a/kde/gui/lib9pstreamer.cpp +++ b/kde/gui/lib9pstreamer.cpp @@ -154,9 +154,16 @@ void Lib9pStreamer::onWorkerFinished(bool success, const QString &error) // Clean up the worker if (m_workerThread) { m_workerThread->quit(); - m_workerThread->wait(100); - delete m_worker; - delete m_workerThread; + if (m_workerThread->wait(500)) { + // Thread exited cleanly + delete m_worker; + delete m_workerThread; + } else { + // Thread still running — abandon safely + disconnect(m_worker, nullptr, this, nullptr); + connect(m_workerThread, &QThread::finished, m_worker, &QObject::deleteLater); + connect(m_workerThread, &QThread::finished, m_workerThread, &QObject::deleteLater); + } m_worker = nullptr; m_workerThread = nullptr; }