summaryrefslogtreecommitdiff
path: root/src/lib/ecore_ipc
diff options
context:
space:
mode:
authorGustavo Sverzut Barbieri <barbieri@profusion.mobi>2016-11-23 12:14:57 -0200
committerGustavo Sverzut Barbieri <barbieri@profusion.mobi>2016-11-23 12:57:10 -0200
commit715c882073aace5c6f77916a11a442718fb91a40 (patch)
treeed1ea5777ebff4ea1d53cf003c244b5ac8aafd86 /src/lib/ecore_ipc
parent3bc7c502dbe039d59a11b740b73169775ce0702b (diff)
ecore_ipc: check if client is still alive efore emitting 'del' event.
Using the ecore_ipc_server_example with -m/--single-message, if we deleted the client from the callback it would find a dead "cl". As the "cl" handle is removed from svr->clients before it's deleted, it's safe to check if we have that handle in the list before proceeding.
Diffstat (limited to 'src/lib/ecore_ipc')
-rw-r--r--src/lib/ecore_ipc/ecore_ipc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lib/ecore_ipc/ecore_ipc.c b/src/lib/ecore_ipc/ecore_ipc.c
index d999d585d8..59e7db62ee 100644
--- a/src/lib/ecore_ipc/ecore_ipc.c
+++ b/src/lib/ecore_ipc/ecore_ipc.c
@@ -889,6 +889,7 @@ _ecore_ipc_event_client_del(void *data EINA_UNUSED, int ev_type EINA_UNUSED, voi
889 Ecore_Ipc_Client *cl; 889 Ecore_Ipc_Client *cl;
890 890
891 cl = ecore_con_client_data_get(e->client); 891 cl = ecore_con_client_data_get(e->client);
892 if (!eina_list_data_find(svr->clients, cl)) return ECORE_CALLBACK_RENEW;
892 cl->client = NULL; 893 cl->client = NULL;
893 894
894 ecore_ipc_post_event_client_del(cl); 895 ecore_ipc_post_event_client_del(cl);