From daec263c51e9c6be36309f1b14c1d9c025e9fbc6 Mon Sep 17 00:00:00 2001 From: Hosang Kim Date: Wed, 22 May 2019 08:01:58 -0400 Subject: [PATCH] ecore_ipc: close dialer io closer when dialer is deleted. Summary: dialer uses copier class, so dialer's close on invalidate flag is EINA_FALSE. Therefore dialer io closer is not closed automatically. Reviewers: barbieri, raster, Hermet, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8922 --- src/lib/ecore_ipc/ecore_ipc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lib/ecore_ipc/ecore_ipc.c b/src/lib/ecore_ipc/ecore_ipc.c index 97b263784b..f6f7fee463 100644 --- a/src/lib/ecore_ipc/ecore_ipc.c +++ b/src/lib/ecore_ipc/ecore_ipc.c @@ -539,6 +539,8 @@ ecore_ipc_server_add(Ecore_Ipc_Type type, const char *name, int port, const void return NULL; } +static Efl_Callback_Array_Item *_ecore_ipc_dialer_cbs(void); + static void _ecore_ipc_dialer_del(Ecore_Ipc_Server *svr) { @@ -564,6 +566,10 @@ _ecore_ipc_dialer_del(Ecore_Ipc_Server *svr) if (svr->dialer.dialer) { + efl_event_callback_array_del(svr->dialer.dialer, _ecore_ipc_dialer_cbs(), svr); + if (!efl_io_closer_closed_get(svr->dialer.dialer)) + efl_io_closer_close(svr->dialer.dialer); + efl_del(svr->dialer.dialer); svr->dialer.dialer = NULL; }