Ecore ecore_main.c: Fixed ecore_main_loop(_ecore_main_loop_iterate_internal).
authorseoz <seoz@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 20 May 2011 06:35:07 +0000 (06:35 +0000)
committerseoz <seoz@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 20 May 2011 06:35:07 +0000 (06:35 +0000)
This fixes fd handler pending issue when ecore_idler callback adds ecore_job/event.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@59549 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/ecore/ecore_main.c

index f65722b..ce13353 100644 (file)
@@ -1486,8 +1486,8 @@ _ecore_main_loop_iterate_internal(int once_only)
                     {
                        _ecore_time_loop_time = ecore_time_get();
                        if (!_ecore_idler_call()) goto start_loop;
-                       if (_ecore_event_exist()) break;
                        if (_ecore_main_select(0.0) > 0) have_event = 1;
+                       if (_ecore_event_exist()) break;
                        if (_ecore_signal_count_get() > 0) have_signal = 1;
                        if (have_event || have_signal) break;
                        if (_ecore_timers_exists()) goto start_loop;
@@ -1510,8 +1510,8 @@ _ecore_main_loop_iterate_internal(int once_only)
                     {
                        _ecore_time_loop_time = ecore_time_get();
                        if (!_ecore_idler_call()) goto start_loop;
-                       if (_ecore_event_exist()) break;
                        if (_ecore_main_select(0.0) > 0) have_event = 1;
+                       if (_ecore_event_exist()) break;
                        if (_ecore_signal_count_get() > 0) have_signal = 1;
                        if (have_event || have_signal) break;
                        next_time = _ecore_timer_next_get();