Erase an element in unordered_map when listener stops 85/273685/1 accepted/tizen/6.5/unified/20220420.135524 submit/tizen_6.5/20220419.054552
authorTaeminYeom <taemin.yeom@samsung.com>
Tue, 12 Apr 2022 05:27:35 +0000 (14:27 +0900)
committerHyotaek Shim <hyotaek.shim@samsung.com>
Tue, 12 Apr 2022 08:34:19 +0000 (08:34 +0000)
It reduces memory usage.

Change-Id: Ie162b638d2ba9f9ec8e73c37bf13e371188c94e6
Signed-off-by: TaeminYeom <taemin.yeom@samsung.com>
(cherry picked from commit d6157d5378a922184f7ea8594fbdf3b0b4268352)

src/server/application_sensor_handler.cpp
src/server/external_sensor_handler.cpp
src/server/fusion_sensor_handler.cpp
src/server/physical_sensor_handler.cpp
src/server/sensor_listener_proxy.cpp

index 80e73d97dd4f8ce1b39a2f2e0d88dd5a48f7cacc..a1beab161a40e94ba2067a8c4f952a38adfd8c41 100644 (file)
@@ -67,6 +67,7 @@ int application_sensor_handler::start(sensor_observer *ob)
 
 int application_sensor_handler::stop(sensor_observer *ob)
 {
+       m_interval_map.erase(ob);
        remove_observer(ob);
 
        if (observer_count() > 0 || !m_started.load())
index 8fd29ec90b37b9526f8e1312eeed4ab69ef32e58..a4808853341931807de9ebd773f2a91fc31fda25 100644 (file)
@@ -112,6 +112,7 @@ int external_sensor_handler::stop(sensor_observer *ob)
        int policy = m_sensor->stop(ob);
        retv_if(policy <= OP_ERROR, policy);
 
+       m_interval_map.erase(ob);
        remove_observer(ob);
 
        _I("Stopped[%s]", m_info.get_uri().c_str());
index 8be7d27aa126cd0f84cd50ab1184011225b57717..ea9c4efa5b30d415099ba184856f287843754d91 100644 (file)
@@ -98,6 +98,7 @@ int fusion_sensor_handler::stop(sensor_observer *ob)
        policy = m_sensor->stop(ob);
        retv_if(policy <= OP_ERROR, policy);
 
+       m_interval_map.erase(ob);
        remove_observer(ob);
 
        if (policy == OP_DEFAULT) {
index 5c20eb0b68586886d0c5ddd60d803c08559c0ec3..cb77207c301227e9a4db9d5a6def067306ba5876 100644 (file)
@@ -123,6 +123,7 @@ int physical_sensor_handler::stop(sensor_observer *ob)
                retv_if(policy <= OP_ERROR, policy);
        }
 
+       m_interval_map.erase(ob);
        remove_observer(ob);
 
        if (policy == OP_DEFAULT) {
index 8148577f9c9043030a26019a0786e41f44c8ebd7..76e5dcdd9c9df21c122fb02e346c122590c95884 100644 (file)
@@ -147,7 +147,6 @@ int sensor_listener_proxy::stop(bool policy)
                return OP_SUCCESS;
 
        /* unset attributes */
-       set_interval(POLL_MAX_HZ_MS);
        delete_batch_latency();
 
        m_started = false;