From: Yunmi Ha Date: Fri, 23 Apr 2021 10:26:56 +0000 (+0900) Subject: Fix an error while restoring connection in case of server down X-Git-Tag: submit/tizen/20210628.005317~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F09%2F257409%2F2;p=platform%2Fcore%2Fsystem%2Fsensord.git Fix an error while restoring connection in case of server down - remove command channel before restoring connection Change-Id: I18967110bb293e7d9442628bf7b980e436c1d33d Signed-off-by: Yunmi Ha --- diff --git a/src/client/sensor_internal.cpp b/src/client/sensor_internal.cpp index 7fa8f4da..f185e941 100644 --- a/src/client/sensor_internal.cpp +++ b/src/client/sensor_internal.cpp @@ -364,6 +364,9 @@ API bool sensord_disconnect(int handle) delete listener; listeners.erase(handle); + if (listeners.empty()) + manager.disconnect(); + return true; } diff --git a/src/client/sensor_listener.cpp b/src/client/sensor_listener.cpp index 51c01524..12e2d995 100644 --- a/src/client/sensor_listener.cpp +++ b/src/client/sensor_listener.cpp @@ -187,6 +187,11 @@ sensor_t sensor_listener::get_sensor(void) void sensor_listener::restore(void) { ret_if(!is_connected()); + + m_cmd_channel->disconnect(); + delete m_cmd_channel; + m_cmd_channel = NULL; + retm_if(!connect(), "Failed to restore listener"); _D("Restoring sensor listener"); diff --git a/src/client/sensor_manager.cpp b/src/client/sensor_manager.cpp index 10ec56c5..bcb86d5a 100644 --- a/src/client/sensor_manager.cpp +++ b/src/client/sensor_manager.cpp @@ -249,6 +249,10 @@ void sensor_manager::restore(void) { ret_if(!is_connected()); + m_cmd_channel->disconnect(); + delete m_cmd_channel; + m_cmd_channel = NULL; + m_connected.store(false); retm_if(!connect_channel(), "Failed to restore manager");