summaryrefslogtreecommitdiff
path: root/legacy
diff options
context:
space:
mode:
authorCedric BAIL <cedric.bail@free.fr>2009-12-21 13:27:58 +0000
committerCedric BAIL <cedric.bail@free.fr>2009-12-21 13:27:58 +0000
commit42f896caf2115b0881d1143c1aa0a2d31eb86692 (patch)
treeab1ef8debd7fabc62110f903d510367bf7bfc960 /legacy
parent8bc6ac86fb9a1434256fc72fdc78300c076a9c7d (diff)
* ecore: Don't select on deleted fd handler.
SVN revision: 44627
Diffstat (limited to 'legacy')
-rw-r--r--legacy/ecore/src/lib/ecore/ecore_main.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/legacy/ecore/src/lib/ecore/ecore_main.c b/legacy/ecore/src/lib/ecore/ecore_main.c
index a22336f985..502b9f07de 100644
--- a/legacy/ecore/src/lib/ecore/ecore_main.c
+++ b/legacy/ecore/src/lib/ecore/ecore_main.c
@@ -454,23 +454,24 @@ _ecore_main_select(double timeout)
454 if (!fdh->delete_me && fdh->prep_func) 454 if (!fdh->delete_me && fdh->prep_func)
455 fdh->prep_func (fdh->prep_data, fdh); 455 fdh->prep_func (fdh->prep_data, fdh);
456 EINA_INLIST_FOREACH(fd_handlers, fdh) 456 EINA_INLIST_FOREACH(fd_handlers, fdh)
457 { 457 if (!fdh->delete_me)
458 if (fdh->flags & ECORE_FD_READ) 458 {
459 { 459 if (fdh->flags & ECORE_FD_READ)
460 FD_SET(fdh->fd, &rfds); 460 {
461 if (fdh->fd > max_fd) max_fd = fdh->fd; 461 FD_SET(fdh->fd, &rfds);
462 } 462 if (fdh->fd > max_fd) max_fd = fdh->fd;
463 if (fdh->flags & ECORE_FD_WRITE) 463 }
464 { 464 if (fdh->flags & ECORE_FD_WRITE)
465 FD_SET(fdh->fd, &wfds); 465 {
466 if (fdh->fd > max_fd) max_fd = fdh->fd; 466 FD_SET(fdh->fd, &wfds);
467 } 467 if (fdh->fd > max_fd) max_fd = fdh->fd;
468 if (fdh->flags & ECORE_FD_ERROR) 468 }
469 { 469 if (fdh->flags & ECORE_FD_ERROR)
470 FD_SET(fdh->fd, &exfds); 470 {
471 if (fdh->fd > max_fd) max_fd = fdh->fd; 471 FD_SET(fdh->fd, &exfds);
472 } 472 if (fdh->fd > max_fd) max_fd = fdh->fd;
473 } 473 }
474 }
474 if (_ecore_signal_count_get()) return -1; 475 if (_ecore_signal_count_get()) return -1;
475 476
476 ret = main_loop_select(max_fd + 1, &rfds, &wfds, &exfds, t); 477 ret = main_loop_select(max_fd + 1, &rfds, &wfds, &exfds, t);