From 3cfb5e1485846799572147a3afd95afaa9755ed9 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 25 Jul 2018 08:59:32 +0200 Subject: Same fix as last commit. --- common/resourcecontrol.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/common/resourcecontrol.cpp b/common/resourcecontrol.cpp index 678e6c0..437bf4b 100644 --- a/common/resourcecontrol.cpp +++ b/common/resourcecontrol.cpp @@ -57,11 +57,14 @@ KAsync::Job ResourceControl::shutdown(const QByteArray &identifier) future.setFinished(); return; } - QObject::connect(resourceAccess.data(), &ResourceAccess::ready, [&future](bool ready) { - if (!ready) { - future.setFinished(); - } - }); + auto guard = new QObject; + QObject::connect(resourceAccess.data(), &ResourceAccess::ready, guard, [&future](bool ready) { + if (!ready) { + //Protect against callback getting called twice. + delete guard; + future.setFinished(); + } + }); }).then([time] { SinkTrace() << "Shutdown complete." << Log::TraceTime(time->elapsed()); }); -- cgit v1.2.3