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 <cedric@osg.samsung.com>
This commit is contained in:
Hosang Kim 2015-10-08 12:14:00 +02:00 committed by Cedric BAIL
parent 6a90df70bf
commit ec53c8845e
1 changed files with 3 additions and 0 deletions

View File

@ -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);
}