Update Snapshot(2018-02-28)
[platform/upstream/iotivity.git] / service / resource-encapsulation / src / resourceCache / src / ResourceCacheManager.cpp
index 8a3f020..386e809 100644 (file)
@@ -88,6 +88,7 @@ namespace OIC
 
                 auto newHandler = std::make_shared<ObserveCache>(pResource);
                 newHandler->startCache(std::move(func));
+                m_observeCacheList.push_back(newHandler);
 
                 observeCacheIDmap.insert(std::make_pair(retID, newHandler));
                 return retID;
@@ -133,6 +134,7 @@ namespace OIC
             if ((dataCacheIns == cacheIDmap.end() && observeIns == observeCacheIDmap.end())
                 || id == 0)
             {
+                lock.~lock_guard();
                 throw RCSInvalidParameterException {"[cancelResourceCache] CacheID is invaild"};
             }
 
@@ -146,6 +148,7 @@ namespace OIC
                 {
                     (observeIns->second).reset();
                     observeCacheIDmap.erase(id);
+                    lock.~lock_guard();
                     throw;
                 }
                 (observeIns->second).reset();