It fixes double close of socket.
Change-Id: I4278025d473b1339bd2f7291d8d56c7f31865749
Signed-off-by: TaeminYeom <taemin.yeom@samsung.com>
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;
}
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);
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);