From 3c618e54a16e7c1c5f471f1f4528b57561259f46 Mon Sep 17 00:00:00 2001 From: Daniel Juyung Seo Date: Wed, 22 May 2013 20:40:56 +0900 Subject: [PATCH] ecore_pipe.c: fixed fd handler increasing issue. Call _ecore_pipe_unhandle() when you return from _ecore_pipe_read() or the fd will never be closed. This fixed increasing numbers of fd handler issue when you call ecore_pipe_add/del repeatedly. In that case, reusing ecore_pipe is recommended though. --- ChangeLog | 4 ++++ NEWS | 1 + src/lib/ecore/ecore_pipe.c | 2 ++ 3 files changed, 7 insertions(+) diff --git a/ChangeLog b/ChangeLog index 20a5f11ca0..760271cf02 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-05-22 Daniel Juyung Seo (SeoZ) + + * Fix fd handler increase issue when ecore_pipe_add/del is called repeatedly. + 2013-05-22 ChunEon Park (Hermet) * Edje textblock: keep the text styles when new font by the text class is applied. diff --git a/NEWS b/NEWS index 899d3b25b3..e54766be78 100644 --- a/NEWS +++ b/NEWS @@ -272,3 +272,4 @@ Fixes: * Ecore-imf: fix crash when ecore_imf_context_del is called in ecore_imf_context_input_panel_callback_call * Edje textblock: Fixed issue with quoted formats. * Edje textblock: Keep the text styles when new font by the text class is applied. + * Fix fd handler increase issue when ecore_pipe_add/del is called repeatedly. diff --git a/src/lib/ecore/ecore_pipe.c b/src/lib/ecore/ecore_pipe.c index 6e89fa8917..705673b398 100644 --- a/src/lib/ecore/ecore_pipe.c +++ b/src/lib/ecore/ecore_pipe.c @@ -656,6 +656,7 @@ _ecore_pipe_read(void *data, else if ((ret == PIPE_FD_ERROR) && ((errno == EINTR) || (errno == EAGAIN))) { + _ecore_pipe_unhandle(p); return ECORE_CALLBACK_RENEW; } else @@ -663,6 +664,7 @@ _ecore_pipe_read(void *data, ERR("An unhandled error (ret: %i errno: %i [%s])" "occurred while reading from the pipe the length", (int)ret, errno, strerror(errno)); + _ecore_pipe_unhandle(p); return ECORE_CALLBACK_RENEW; } #else