On Mon, 13 Dec 2010 16:54:42 +0900 Mike McCormack <mj.mccorm...@samsung.com>
said:

seems sensible - if the fd handler needs to USE the fd on del.it didnt used to
need to do that prior to epoll.

> >From c83bcffc5ac24154cbbf98df953b3b9121f4797b Mon Sep 17 00:00:00 2001
> From: Mike McCormack <mj.mccorm...@samsung.com>
> Date: Mon, 13 Dec 2010 16:23:39 +0900
> Subject: [PATCH 1/4] Always close fd after remove fdh from main loop
> 
> ---
>  trunk/ecore/src/lib/ecore_con/ecore_con.c |   31 +++++++++++++++-------------
>  1 files changed, 17 insertions(+), 14 deletions(-)
> 
> diff --git a/trunk/ecore/src/lib/ecore_con/ecore_con.c
> b/trunk/ecore/src/lib/ecore_con/ecore_con.c index 9e8b50c..49f1fae 100644
> --- a/trunk/ecore/src/lib/ecore_con/ecore_con.c
> +++ b/trunk/ecore/src/lib/ecore_con/ecore_con.c
> @@ -373,12 +373,12 @@ error:
>       free(svr->path);
>  
>  #ifndef _WIN32
> -   if (svr->fd >= 0)
> -     close(svr->fd);
> -
>     if (svr->fd_handler)
>       ecore_main_fd_handler_del(svr->fd_handler);
>  
> +   if (svr->fd >= 0)
> +     close(svr->fd);
> +
>     if (svr->write_buf)
>       free(svr->write_buf);
>  
> @@ -494,12 +494,12 @@ error:
>     if (svr->path)
>       free(svr->path);
>  
> -   if (svr->fd >= 0)
> -     close(svr->fd);
> -
>     if (svr->fd_handler)
>       ecore_main_fd_handler_del(svr->fd_handler);
>  
> +   if (svr->fd >= 0)
> +     close(svr->fd);
> +
>     ecore_con_ssl_server_shutdown(svr);
>     free(svr);
>     return NULL;
> @@ -1184,9 +1184,6 @@ _ecore_con_server_free(Ecore_Con_Server *svr)
>       unlink(svr->path);
>  
>     ecore_con_ssl_server_shutdown(svr);
> -   if (svr->fd >= 0)
> -     close(svr->fd);
> -
>     if (svr->name)
>       free(svr->name);
>  
> @@ -1199,6 +1196,9 @@ _ecore_con_server_free(Ecore_Con_Server *svr)
>     if (svr->fd_handler)
>       ecore_main_fd_handler_del(svr->fd_handler);
>  
> +   if (svr->fd >= 0)
> +     close(svr->fd);
> +
>     servers = eina_list_remove(servers, svr);
>     svr->data = NULL;
>     free(svr);
> @@ -1253,12 +1253,12 @@ _ecore_con_client_free(Ecore_Con_Client *cl)
>     if (cl->host_server->type & ECORE_CON_SSL)
>       ecore_con_ssl_client_shutdown(cl);
>  
> -   if (cl->fd >= 0)
> -     close(cl->fd);
> -
>     if (cl->fd_handler)
>       ecore_main_fd_handler_del(cl->fd_handler);
>  
> +   if (cl->fd >= 0)
> +     close(cl->fd);
> +
>     if (cl->client_addr)
>       free(cl->client_addr);
>     cl->client_addr = NULL;
> @@ -1771,9 +1771,12 @@ _ecore_con_svr_tcp_handler(void
> *data, return ECORE_CALLBACK_RENEW;
>  
>  error:
> -   close(new_fd);
>     if (cl && cl->fd_handler)
> -     ecore_main_fd_handler_del(cl->fd_handler);
> +     {
> +        ecore_main_fd_handler_del(cl->fd_handler);
> +        close(cl->fd);
> +        free(cl);
> +     }
>     return ECORE_CALLBACK_RENEW;
>  }
>  
> -- 
> 1.7.0.4
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to