gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/gzz client/AbstractUpdateManager.java clien...


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz/gzz client/AbstractUpdateManager.java clien...
Date: Fri, 10 Jan 2003 13:44:52 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        03/01/10 13:44:51

Modified files:
        gzz/client     : AbstractUpdateManager.java 
        gzz/client/gl  : GLUpdateManager.java 
Added files:
        gzz/util       : PriorityQueue.java 

Log message:
        Start on priority queue for bg. Doc coming shortly.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/client/AbstractUpdateManager.java.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/client/gl/GLUpdateManager.java.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/util/PriorityQueue.java?rev=1.1

Patches:
Index: gzz/gzz/client/AbstractUpdateManager.java
diff -u gzz/gzz/client/AbstractUpdateManager.java:1.25 
gzz/gzz/client/AbstractUpdateManager.java:1.26
--- gzz/gzz/client/AbstractUpdateManager.java:1.25      Tue Dec  3 14:14:12 2002
+++ gzz/gzz/client/AbstractUpdateManager.java   Fri Jan 10 13:44:51 2003
@@ -41,7 +41,7 @@
  */
 
 public abstract class AbstractUpdateManager implements Runnable {
-public static final String rcsid = "$Id: AbstractUpdateManager.java,v 1.25 
2002/12/03 19:14:12 tjl Exp $";
+public static final String rcsid = "$Id: AbstractUpdateManager.java,v 1.26 
2003/01/10 18:44:51 tjl Exp $";
     public static boolean dbg = false;
     private static void pa(String s) { System.err.println(s); }
 
@@ -318,7 +318,14 @@
      * @return true, if any events were received.
      */
     protected abstract boolean handleEvents(boolean waitForEvent);
-    protected void doIdle() {
+
+    /** Do the background tasks that need to be done in 
+     * the main thread.
+     * Implementations overriding this method should also delegate!
+     * @return true if something was done.
+     */
+    protected boolean doIdle() {
+       return false;
     }
 
     public void run() {
@@ -344,23 +351,27 @@
        Window[] wins = new Window[0], newwins = null;
        boolean[] regenNeeded = new boolean[0];
        long lastTime = 0; // Last start of first win animation.
-       while(true) try {
+MAINEVENTLOOP: while(true) try {
            // This is necessary so that the JVM won't stuff
            // X's queue full of stuff and render far more scenes
            // far more quickly than it should and leave X lagging.
            GlobalToolkit.toolkit.sync();
            if(dbg) pa("STARTORD");
-               if(dbg) pa("STARTORD SYNCHED");
-               if (!firstWinAnim) ind++;
-               updating = false;
-
-               handleEvents(false);
-
-               while(disabled>0 || (ind >= wins.length && !restartUpd)) {
-                   if(dbg) pa("STARTORD "+disabled+" "+ind+" "+restartUpd);
-                   System.gc();
-                   handleEvents(true);
-               }
+           if (!firstWinAnim) ind++;
+           updating = false;
+
+           handleEvents(false);
+
+           while(disabled>0 || (ind >= wins.length && !restartUpd)) {
+               // While no screen updates need to be done
+               if(dbg) pa("STARTORD "+disabled+" "+ind+" "+restartUpd);
+
+               if(doIdle()) continue MAINEVENTLOOP;
+
+               System.gc();
+               // Wait for next event
+               handleEvents(true);
+           }
            // Thread.yield(); // Again, try to let the evena thread have 
control.
            synchronized(ordering) {
                if(dbg) pa("STARTORD WAITED");
Index: gzz/gzz/client/gl/GLUpdateManager.java
diff -u gzz/gzz/client/gl/GLUpdateManager.java:1.9 
gzz/gzz/client/gl/GLUpdateManager.java:1.10
--- gzz/gzz/client/gl/GLUpdateManager.java:1.9  Wed Dec 11 01:21:45 2002
+++ gzz/gzz/client/gl/GLUpdateManager.java      Fri Jan 10 13:44:51 2003
@@ -30,7 +30,7 @@
 import java.util.*;
 
 public class GLUpdateManager extends AbstractUpdateManager {
-public static final String rcsid = "$Id: GLUpdateManager.java,v 1.9 2002/12/11 
06:21:45 tjl Exp $";
+public static final String rcsid = "$Id: GLUpdateManager.java,v 1.10 
2003/01/10 18:44:51 tjl Exp $";
     private static boolean dbg = false;
     private static void p(String s) { if(dbg) pa(s); }
     private static void pa(String s) { System.err.println(s); }
@@ -53,7 +53,9 @@
        return true;
     }
 
-    protected void doIdle() {
+    protected boolean doIdle() {
+       if(super.doIdle()) return true;
        GL.freeQueue();
+       return false;
     }
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]