001 package escjava.gui;
002
003 public class TaskQueue {
004
005 //@ non_null
006 private java.util.LinkedList tasks = new java.util.LinkedList();
007
008 synchronized public void addTask(Object o) {
009 tasks.addLast(o);
010 notifyAll();
011 }
012
013 synchronized public Object getTask() {
014 while (tasks.isEmpty()) {
015 try { wait(); } catch (Exception e) {}
016 }
017 return tasks.removeFirst();
018 }
019
020 synchronized public void clear() {
021 tasks.clear();
022 }
023 }