* ecore: Don't select on deleted fd handler.

SVN revision: 44627
This commit is contained in:
Cedric BAIL 2009-12-21 13:27:58 +00:00
parent 8bc6ac86fb
commit 42f896caf2
1 changed files with 18 additions and 17 deletions

View File

@ -454,23 +454,24 @@ _ecore_main_select(double timeout)
if (!fdh->delete_me && fdh->prep_func) if (!fdh->delete_me && fdh->prep_func)
fdh->prep_func (fdh->prep_data, fdh); fdh->prep_func (fdh->prep_data, fdh);
EINA_INLIST_FOREACH(fd_handlers, fdh) EINA_INLIST_FOREACH(fd_handlers, fdh)
{ if (!fdh->delete_me)
if (fdh->flags & ECORE_FD_READ) {
{ if (fdh->flags & ECORE_FD_READ)
FD_SET(fdh->fd, &rfds); {
if (fdh->fd > max_fd) max_fd = fdh->fd; FD_SET(fdh->fd, &rfds);
} if (fdh->fd > max_fd) max_fd = fdh->fd;
if (fdh->flags & ECORE_FD_WRITE) }
{ if (fdh->flags & ECORE_FD_WRITE)
FD_SET(fdh->fd, &wfds); {
if (fdh->fd > max_fd) max_fd = fdh->fd; FD_SET(fdh->fd, &wfds);
} if (fdh->fd > max_fd) max_fd = fdh->fd;
if (fdh->flags & ECORE_FD_ERROR) }
{ if (fdh->flags & ECORE_FD_ERROR)
FD_SET(fdh->fd, &exfds); {
if (fdh->fd > max_fd) max_fd = fdh->fd; FD_SET(fdh->fd, &exfds);
} if (fdh->fd > max_fd) max_fd = fdh->fd;
} }
}
if (_ecore_signal_count_get()) return -1; if (_ecore_signal_count_get()) return -1;
ret = main_loop_select(max_fd + 1, &rfds, &wfds, &exfds, t); ret = main_loop_select(max_fd + 1, &rfds, &wfds, &exfds, t);