Change not to call "g_io_channel_shutdown" 44/274244/2 accepted/tizen/unified/20220426.212659 submit/tizen/20220426.083107
authorTaeminYeom <taemin.yeom@samsung.com>
Mon, 25 Apr 2022 08:28:13 +0000 (17:28 +0900)
committerTaeminYeom <taemin.yeom@samsung.com>
Tue, 26 Apr 2022 07:21:49 +0000 (16:21 +0900)
It fixes double close of socket.

Change-Id: I4278025d473b1339bd2f7291d8d56c7f31865749
Signed-off-by: TaeminYeom <taemin.yeom@samsung.com>
src/shared/channel.cpp
src/shared/event_loop.cpp
src/shared/event_loop.h

index fc7940e2a0d81b7ddec2ef27484db09483a7dd5c..e995057635c243c1bcae2dc4a4c4ca024c9fa601 100644 (file)
@@ -189,10 +189,10 @@ void channel::disconnect(void)
        if (m_loop) {
                for(auto id : m_pending_event_id) {
                        _D("Remove channel[%p] pending event id[%llu]", this, id);
-                       m_loop->remove_event(id, true);
+                       m_loop->remove_event(id);
                }
                _D("Remove channel[%p] event[%llu]",this, m_event_id);
-               m_loop->remove_event(m_event_id, true);
+               m_loop->remove_event(m_event_id);
                m_event_id = 0;
        }
 
index 840ec2a621db670904c00416668c4be8ab78af6c..f1733b2f26aa22abea4a49ec80f358a4ed29c10b 100644 (file)
@@ -185,15 +185,12 @@ size_t event_loop::add_idle_event(unsigned int priority, void (*fn)(size_t, void
        return (size_t)id;
 }
 
-bool event_loop::remove_event(uint64_t id, bool close_channel)
+bool event_loop::remove_event(uint64_t id)
 {
        AUTOLOCK(m_cmutex);
        auto it = m_handlers.find(id);
        retv_if(it == m_handlers.end(), false);
 
-       if (close_channel)
-               g_io_channel_shutdown(it->second->g_ch, TRUE, NULL);
-
        release_info(it->second);
        m_handlers.erase(id);
 
index 40fcb2ece9e032194decaff8ff0e55cedf86e7bb..735badb602180846fc2841fbee3ab3a6e61f74a5 100644 (file)
@@ -78,7 +78,7 @@ public:
        uint64_t add_event(const int fd, const event_condition cond, event_handler *handler);
        size_t add_idle_event(unsigned int priority, void (*fn)(size_t, void*), void* data);
 
-       bool remove_event(uint64_t id, bool close_channel = false);
+       bool remove_event(uint64_t id);
        void remove_all_events(void);
 
        void release_info(handler_info *info);