Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore
Modified Files:
ecore_main.c
Log Message:
some defines, a fix for ecores main loop so if an idle enterer generates
events we dont sit and wait on timers or fd's before processing them.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_main.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- ecore_main.c 20 Oct 2004 17:51:27 -0000 1.14
+++ ecore_main.c 8 Nov 2004 00:08:25 -0000 1.15
@@ -500,80 +500,83 @@
in_main_loop--;
return;
}
- /* init flags */
- have_event = have_signal = 0;
- next_time = _ecore_timer_next_get();
- /* no timers */
- if (next_time < 0)
+ if (!_ecore_event_exist())
{
- /* no idlers */
- if (!_ecore_idler_exist())
+ /* init flags */
+ have_event = have_signal = 0;
+ next_time = _ecore_timer_next_get();
+ /* no timers */
+ if (next_time < 0)
{
- int ret;
-
- ret = _ecore_main_select(-1);
- if (ret > 0) have_event = 1;
-#ifndef WIN32
- if (_ecore_signal_count_get() > 0) have_signal = 1;
-#endif
- }
- /* idlers */
- else
- {
- for (;;)
+ /* no idlers */
+ if (!_ecore_idler_exist())
{
int ret;
- if (!_ecore_idler_call()) goto start_loop;
- if (_ecore_event_exist()) break;
- ret = _ecore_main_select(0);
+ ret = _ecore_main_select(-1);
if (ret > 0) have_event = 1;
#ifndef WIN32
if (_ecore_signal_count_get() > 0) have_signal = 1;
#endif
- if (have_event || have_signal) break;
- next_time = _ecore_timer_next_get();
- if (next_time >= 0) goto start_loop;
- if (do_quit) break;
+ }
+ /* idlers */
+ else
+ {
+ for (;;)
+ {
+ int ret;
+
+ if (!_ecore_idler_call()) goto start_loop;
+ if (_ecore_event_exist()) break;
+ ret = _ecore_main_select(0);
+ if (ret > 0) have_event = 1;
+#ifndef WIN32
+ if (_ecore_signal_count_get() > 0) have_signal = 1;
+#endif
+ if (have_event || have_signal) break;
+ next_time = _ecore_timer_next_get();
+ if (next_time >= 0) goto start_loop;
+ if (do_quit) break;
+ }
}
}
- }
- /* timers */
- else
- {
- /* no idlers */
- if (!_ecore_idler_exist())
- {
- int ret;
-
- ret = _ecore_main_select(next_time);
- if (ret > 0) have_event = 1;
-#ifndef WIN32
- if (_ecore_signal_count_get() > 0) have_signal = 1;
-#endif
- }
- /* idlers */
+ /* timers */
else
{
- for (;;)
+ /* no idlers */
+ if (!_ecore_idler_exist())
{
- double cur_time, t;
int ret;
- if (!_ecore_idler_call()) goto start_loop;
- if (_ecore_event_exist()) break;
- ret = _ecore_main_select(0);
+ ret = _ecore_main_select(next_time);
if (ret > 0) have_event = 1;
#ifndef WIN32
if (_ecore_signal_count_get() > 0) have_signal = 1;
#endif
- if ((have_event) || (have_signal)) break;
- cur_time = ecore_time_get();
- t = ecore_time_get() - cur_time;
- if (t >= next_time) break;
- next_time = _ecore_timer_next_get();
- if (next_time < 0) goto start_loop;
- if (do_quit) break;
+ }
+ /* idlers */
+ else
+ {
+ for (;;)
+ {
+ double cur_time, t;
+ int ret;
+
+ if (!_ecore_idler_call()) goto start_loop;
+ if (_ecore_event_exist()) break;
+ ret = _ecore_main_select(0);
+ if (ret > 0) have_event = 1;
+#ifndef WIN32
+ if (_ecore_signal_count_get() > 0) have_signal = 1;
+#endif
+ if ((have_event) || (have_signal)) break;
+ cur_time = ecore_time_get();
+ t = ecore_time_get() - cur_time;
+ if (t >= next_time) break;
+ next_time = _ecore_timer_next_get();
+ if (next_time < 0) goto start_loop;
+ if (do_quit) break;
+ }
}
}
}
-------------------------------------------------------
This SF.Net email is sponsored by:
Sybase ASE Linux Express Edition - download now for FREE
LinuxWorld Reader's Choice Award Winner for best database on Linux.
http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs