|
|
@@ -567,6 +567,18 @@ public class Application implements SystemListener {
|
|
|
return task;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Runs tasks enqueued via {@link #enqueue(Callable)}
|
|
|
+ */
|
|
|
+ protected void runQueuedTasks() {
|
|
|
+ AppTask<?> task;
|
|
|
+ while( (task = taskQueue.poll()) != null ) {
|
|
|
+ if (!task.isCancelled()) {
|
|
|
+ task.invoke();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Do not call manually.
|
|
|
* Callback from ContextListener.
|
|
|
@@ -575,26 +587,7 @@ public class Application implements SystemListener {
|
|
|
// Make sure the audio renderer is available to callables
|
|
|
AudioContext.setAudioRenderer(audioRenderer);
|
|
|
|
|
|
- AppTask<?> task = taskQueue.poll();
|
|
|
- toploop: do {
|
|
|
- if (task == null) break;
|
|
|
- while (task.isCancelled()) {
|
|
|
- task = taskQueue.poll();
|
|
|
- if (task == null) break toploop;
|
|
|
- }
|
|
|
- task.invoke();
|
|
|
- } while (((task = taskQueue.poll()) != null));
|
|
|
-
|
|
|
- /* I think the above is really just doing this:
|
|
|
- AppTask<?> task;
|
|
|
- while( (task = taskQueue.poll()) != null ) {
|
|
|
- if (!task.isCancelled()) {
|
|
|
- task.invoke();
|
|
|
- }
|
|
|
- }
|
|
|
- //...but it's hard to say for sure. It's so twisted
|
|
|
- //up that I don't trust my eyes. -pspeed
|
|
|
- */
|
|
|
+ runQueuedTasks();
|
|
|
|
|
|
if (speed == 0 || paused)
|
|
|
return;
|