fix deadlock

This commit is contained in:
Martin Rotter 2023-01-18 11:41:09 +01:00
parent e688e2e79f
commit 0ae89308df

View file

@ -35,16 +35,13 @@ void AutoSaver::changeOccurred() {
saveIfNeccessary(); saveIfNeccessary();
} }
else { else {
QMetaObject::invokeMethod(&m_timer, QMetaObject::invokeMethod(&m_timer, "start", Qt::ConnectionType::AutoConnection, Q_ARG(int, m_periodicSaveMsecs));
"start",
Qt::ConnectionType::BlockingQueuedConnection,
Q_ARG(int, m_periodicSaveMsecs));
} }
} }
void AutoSaver::saveIfNeccessary() { void AutoSaver::saveIfNeccessary() {
if (m_timer.isActive()) { if (m_timer.isActive()) {
QMetaObject::invokeMethod(&m_timer, "stop", Qt::ConnectionType::BlockingQueuedConnection); QMetaObject::invokeMethod(&m_timer, "stop", Qt::ConnectionType::AutoConnection);
m_firstChange.invalidate(); m_firstChange.invalidate();
if (!QMetaObject::invokeMethod(parent(), qPrintable(m_savingSlot), Qt::ConnectionType::DirectConnection)) { if (!QMetaObject::invokeMethod(parent(), qPrintable(m_savingSlot), Qt::ConnectionType::DirectConnection)) {