src/share/classes/sun/awt/SunToolkit.java

Print this page

        

@@ -542,19 +542,17 @@
                 }
             }, PeerEvent.ULTIMATE_PRIORITY_EVENT);
         postEvent(targetToAppContext(e.getSource()), pe);
     }
 
-    protected static final Lock flushLock = new ReentrantLock();
     private static boolean isFlushingPendingEvents = false;
 
     /*
      * Flush any pending events which haven't been posted to the AWT
      * EventQueue yet.
      */
     public static void flushPendingEvents()  {
-        flushLock.lock();
         try {
             // Don't call flushPendingEvents() recursively
             if (!isFlushingPendingEvents) {
                 isFlushingPendingEvents = true;
                 AppContext appContext = AppContext.getAppContext();

@@ -564,22 +562,10 @@
                     postEventQueue.flush();
                 }
             }
         } finally {
             isFlushingPendingEvents = false;
-            flushLock.unlock();
-        }
-    }
-
-    public static boolean isPostEventQueueEmpty()  {
-        AppContext appContext = AppContext.getAppContext();
-        PostEventQueue postEventQueue =
-            (PostEventQueue)appContext.get(POST_EVENT_QUEUE_KEY);
-        if (postEventQueue != null) {
-            return postEventQueue.noEvents();
-        } else {
-            return true;
         }
     }
 
     /*
      * Execute a chunk of code on the Java event handler thread for the

@@ -2110,47 +2096,31 @@
 class PostEventQueue {
     private EventQueueItem queueHead = null;
     private EventQueueItem queueTail = null;
     private final EventQueue eventQueue;
 
-    // For the case when queue is cleared but events are not posted
-    private volatile boolean isFlushing = false;
-
     PostEventQueue(EventQueue eq) {
         eventQueue = eq;
     }
 
-    public synchronized boolean noEvents() {
-        return queueHead == null && !isFlushing;
-    }
-
     /*
      * Continually post pending AWTEvents to the Java EventQueue. The method
      * is synchronized to ensure the flush is completed before a new event
      * can be posted to this queue.
      *
      * 7177040: The method couldn't be wholly synchronized because of calls
      * of EventQueue.postEvent() that uses pushPopLock, otherwise it could
      * potentially lead to deadlock
      */
-    public void flush() {
-        EventQueueItem tempQueue;
-        synchronized (this) {
-            tempQueue = queueHead;
+    public synchronized void flush() {
+        EventQueueItem tempQueue = queueHead;
             queueHead = queueTail = null;
-            isFlushing = true;
-        }
-        try {
             while (tempQueue != null) {
                 eventQueue.postEvent(tempQueue.event);
                 tempQueue = tempQueue.next;
             }
         }
-        finally {
-            isFlushing = false;
-        }
-    }
 
     /*
      * Enqueue an AWTEvent to be posted to the Java EventQueue.
      */
     void postEvent(AWTEvent event) {