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

Reply via email to