<AWT Dev> [7u8] Review request for 7177040: Deadlock between PostEventQueue.noEvents, EventQueue.isDispatchThread and SwingUtilities.invokeLater
Oleg Pekhovskiy
oleg.pekhovskiy at oracle.com
Tue Jul 24 06:32:52 PDT 2012
Hi Peter,
so obvious, thank you!
Oleg.
7/24/2012 3:42 PM, Peter Levart wrote:
> Hi Oleg,
>
> This is just cosmetics, but:
>
> SunToolkit:
> public synchronized boolean noEvents() {
> return queueHead == null && !isFlushing;
> }
>
> ... a thread calling noEvents could see occasional "spikes" of false
> return even though there is no flushing being performed (when other
> thread is calling flush on an empty PostEventQueue).
>
> Improved flush method would look like this:
>
> public void flush() {
> EventQueueItem tempQueue;
> synchronized (this) {
> tempQueue = queueHead;
> queueHead = queueTail = null;
> isFlushing =*/(tempQueue != null)/*;
> }
> try {
> while (tempQueue != null) {
> eventQueue.postEvent(tempQueue.event);
> tempQueue = tempQueue.next;
> }
> }
> finally {
> isFlushing = false;
> }
> }
>
> Regards, Peter
>
> 2012/7/23 Oleg Pekhovskiy <oleg.pekhovskiy at oracle.com
> <mailto:oleg.pekhovskiy at oracle.com>>
>
> Hi!
>
> Please review this back-port being already pushed to jdk8 but
> deferred for 7u6.
>
> Bug:
> http://bugs.sun.com/view_bug.do?bug_id=7177040
>
> Webrev:
> http://cr.openjdk.java.net/~bagiras/7u8/7177040.1
> <http://cr.openjdk.java.net/%7Ebagiras/7u8/7177040.1>
>
> Review thread for 7u6:
> http://mail.openjdk.java.net/pipermail/awt-dev/2012-July/003106.html
>
> Reviewers 7u6 & 8:
> Anthony Petrov, Anton Tarasov
>
> Thanks,
> Oleg
>
>
More information about the awt-dev
mailing list