From: cedric Date: Thu, 14 Oct 2010 16:45:17 +0000 (+0000) Subject: * ecore: don't leak pipe. X-Git-Tag: accepted/2.0/20130306.224007~195^2~499 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c85b2e8ff5cffaef9520477b83e2134d9a85c1f6;p=profile%2Fivi%2Fecore.git * ecore: don't leak pipe. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@53410 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/ecore/ecore_pipe.c b/src/lib/ecore/ecore_pipe.c index e41ef18..b4d647b 100644 --- a/src/lib/ecore/ecore_pipe.c +++ b/src/lib/ecore/ecore_pipe.c @@ -524,6 +524,8 @@ _ecore_pipe_read(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__) /* XXX What should we do here? */ ERR("Only read %zd bytes from the pipe, although" " we need to read %zd bytes.", ret, sizeof(p->len)); + _ecore_pipe_unhandle(p); + return ECORE_CALLBACK_CANCEL; } else if (ret == 0) { @@ -536,7 +538,10 @@ _ecore_pipe_read(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__) } #ifndef _WIN32 else if ((ret == PIPE_FD_ERROR) && ((errno == EINTR) || (errno == EAGAIN))) - return ECORE_CALLBACK_RENEW; + { + _ecore_pipe_unhandle(p); + return ECORE_CALLBACK_RENEW; + } else { ERR("An unhandled error (ret: %zd errno: %d [%s])" @@ -596,7 +601,9 @@ _ecore_pipe_read(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__) } #ifndef _WIN32 else if (ret == PIPE_FD_ERROR && (errno == EINTR || errno == EAGAIN)) - return ECORE_CALLBACK_RENEW; + { + return ECORE_CALLBACK_RENEW; + } else { ERR("An unhandled error (ret: %zd errno: %d)"