forked from enlightenment/efl
* ecore: Don't select on deleted fd handler.
SVN revision: 44627
This commit is contained in:
parent
8bc6ac86fb
commit
42f896caf2
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue