diff --git a/include/asynchronousLoop.h b/include/asynchronousLoop.h index d04f517..412fbcb 100644 --- a/include/asynchronousLoop.h +++ b/include/asynchronousLoop.h @@ -33,6 +33,11 @@ public: return isComplete(); } + bool nTotalIsZero(void) const + { + return nTotal == 0; + } + public: const unsigned int nTotal; std::atomic nSucceeded, nFailed; diff --git a/smocore/senseApis/senseApiManager.cpp b/smocore/senseApis/senseApiManager.cpp index 3c91208..a62ce8a 100644 --- a/smocore/senseApis/senseApiManager.cpp +++ b/smocore/senseApis/senseApiManager.cpp @@ -363,6 +363,12 @@ void SenseApiManager::attachAllSenseDevicesFromSpecsReq( auto request = std::make_shared( device::DeviceManager::deviceAttachmentSpecs.size(), std::move(cb)); + if (request->loop.nTotalIsZero()) + { + cb(request->loop); + return; + } + for (const auto& spec : device::DeviceManager::deviceAttachmentSpecs) { try { @@ -421,6 +427,12 @@ void SenseApiManager::detachAllSenseDevicesReq( auto request = std::make_shared( device::DeviceManager::deviceAttachmentSpecs.size(), std::move(cb)); + if (request->loop.nTotalIsZero()) + { + cb(request->loop); + return; + } + for (const auto& spec : device::DeviceManager::deviceAttachmentSpecs) { try {