summaryrefslogtreecommitdiffstats
path: root/common/resourcecontrol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/resourcecontrol.cpp')
-rw-r--r--common/resourcecontrol.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/common/resourcecontrol.cpp b/common/resourcecontrol.cpp
index f509318..90c8fb9 100644
--- a/common/resourcecontrol.cpp
+++ b/common/resourcecontrol.cpp
@@ -53,8 +53,18 @@ KAsync::Job<void> ResourceControl::shutdown(const QByteArray &identifier)
53 resourceAccess->open(); 53 resourceAccess->open();
54 return resourceAccess->sendCommand(Sink::Commands::ShutdownCommand) 54 return resourceAccess->sendCommand(Sink::Commands::ShutdownCommand)
55 .addToContext(resourceAccess) 55 .addToContext(resourceAccess)
56 .syncThen<void>([resourceAccess, time]() { 56 .then<void>([resourceAccess, time](KAsync::Future<void> &future) {
57 resourceAccess->close(); 57 SinkTrace() << "Shutdown command complete, waiting for shutdown." << Log::TraceTime(time->elapsed());
58 if (!resourceAccess->isReady()) {
59 future.setFinished();
60 return;
61 }
62 QObject::connect(resourceAccess.data(), &ResourceAccess::ready, [&future](bool ready) {
63 if (!ready) {
64 future.setFinished();
65 }
66 });
67 }).syncThen<void>([time] {
58 SinkTrace() << "Shutdown complete." << Log::TraceTime(time->elapsed()); 68 SinkTrace() << "Shutdown complete." << Log::TraceTime(time->elapsed());
59 }); 69 });
60 }); 70 });