From b0d61c3e38e30aba5177e69c61268cf3def5230e Mon Sep 17 00:00:00 2001 From: Hayodea Hekol Date: Tue, 30 Sep 2025 14:22:51 -0400 Subject: [PATCH] DevMgr:at/detachSenseDevReq: Acquire DevMgr Qutex --- smocore/deviceManager/deviceManager.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/smocore/deviceManager/deviceManager.cpp b/smocore/deviceManager/deviceManager.cpp index 49c6f09..af2713e 100644 --- a/smocore/deviceManager/deviceManager.cpp +++ b/smocore/deviceManager/deviceManager.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -316,15 +317,15 @@ void DeviceManager::removeDeviceAttachmentSpecReq( } class DeviceManager::AttachSenseDeviceReq -: public PostedAsynchronousContinuation +: public SerializedAsynchronousContinuation { public: AttachSenseDeviceReq( const std::shared_ptr& spec, const std::shared_ptr &caller, Callback cb) - : PostedAsynchronousContinuation( - caller, cb), + : SerializedAsynchronousContinuation( + caller, cb, {std::ref(DeviceManager::getInstance().qutex)}), spec(spec) {} @@ -469,7 +470,8 @@ void DeviceManager::attachSenseDeviceReq( auto request = std::make_shared( spec, caller, cb); - mrntt::mrntt.thread->getIoService().post( + AttachSenseDeviceReq::LockerAndInvoker lockvoker( + *request, mrntt::mrntt.thread, std::bind( &AttachSenseDeviceReq::attachSenseDeviceReq1_posted, request.get(), request)); @@ -484,7 +486,8 @@ void DeviceManager::detachSenseDeviceReq( auto request = std::make_shared( spec, caller, cb); - mrntt::mrntt.thread->getIoService().post( + DetachSenseDeviceReq::LockerAndInvoker lockvoker( + *request, mrntt::mrntt.thread, std::bind( &DetachSenseDeviceReq::detachSenseDeviceReq1_posted, request.get(), request));