[Top][All Lists]
[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;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz/gzz client/AbstractUpdateManager.java clien...,
Tuomas J. Lukka <=