From 65131b9470455ae52a86d811882ca1d97c4a899c Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 1 Apr 2015 01:40:23 +0200 Subject: Use Async::while --- dummyresource/resourcefactory.cpp | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/dummyresource/resourcefactory.cpp b/dummyresource/resourcefactory.cpp index d2b0c14..c0395b7 100644 --- a/dummyresource/resourcefactory.cpp +++ b/dummyresource/resourcefactory.cpp @@ -210,26 +210,17 @@ private slots: Async::Job processPipeline() { - auto job = Async::start([this](Async::Future &future) { - //An async for loop. Go through all message queues - //TODO: replace by Async::foreach - auto it = QSharedPointer >::create(mCommandQueues); - asyncWhile([&, it](std::function forCallback) { - if (it->hasNext()) { - auto queue = it->next(); - processQueue(queue).then([forCallback]() { - forCallback(false); - }).exec(); - } else { - forCallback(true); - } - }, - [&future]() { //while complete - future.setFinished(); - }); - - }); - return job; + //Go through all message queues + auto it = QSharedPointer >::create(mCommandQueues); + return Async::dowhile( + [it]() { return it->hasNext(); }, + [it, this](Async::Future &future) { + auto queue = it->next(); + processQueue(queue).then([&future]() { + future.setFinished(); + }).exec(); + } + ); } private: -- cgit v1.2.3