cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ec53c8845e8d7319bbbad4fb7aa0fe3fc9bcac2a

commit ec53c8845e8d7319bbbad4fb7aa0fe3fc9bcac2a
Author: Hosang Kim <hosang12....@samsung.com>
Date:   Thu Oct 8 12:14:00 2015 +0200

    ecore_fd: add _ecore_main_fdh_poll_del() when fd handler is deleted.
    
    Summary:
    When fd handler is deleted by ECORE_CALLBACK_CANCEL, 
_ecore_main_fdh_poll_del() is not called.
    So fd still exists in epoll's event pool.
    
    Reviewers: raster, seoz, woohyun, Hermet, cedric
    
    Reviewed By: cedric
    
    Subscribers: cedric
    
    Differential Revision: https://phab.enlightenment.org/D3131
    
    Signed-off-by: Cedric BAIL <ced...@osg.samsung.com>
---
 src/lib/ecore/ecore_main.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/lib/ecore/ecore_main.c b/src/lib/ecore/ecore_main.c
index 97cfaf8..e35241d 100644
--- a/src/lib/ecore/ecore_main.c
+++ b/src/lib/ecore/ecore_main.c
@@ -1546,6 +1546,7 @@ _ecore_main_fd_handlers_bads_rem(void)
                        ERR("Fd function err returned 0, remove it");
                        if (!fdh->delete_me)
                          {
+                            _ecore_main_fdh_poll_del(fdh);
                             fdh->delete_me = EINA_TRUE;
                             fd_handlers_to_delete = 
eina_list_append(fd_handlers_to_delete, fdh);
                          }
@@ -1558,6 +1559,7 @@ _ecore_main_fd_handlers_bads_rem(void)
                   ERR("Problematic fd found at %d! setting it for delete", 
fdh->fd);
                   if (!fdh->delete_me)
                     {
+                       _ecore_main_fdh_poll_del(fdh);
                        fdh->delete_me = EINA_TRUE;
                        fd_handlers_to_delete = 
eina_list_append(fd_handlers_to_delete, fdh);
                     }
@@ -1673,6 +1675,7 @@ _ecore_main_fd_handlers_call(void)
                      {
                         if (!fdh->delete_me)
                           {
+                             _ecore_main_fdh_poll_del(fdh);
                              fdh->delete_me = EINA_TRUE;
                              fd_handlers_to_delete = 
eina_list_append(fd_handlers_to_delete, fdh);
                           }

-- 


Reply via email to