Hi Oleg,<div><br></div><div>This is just cosmetics, but:</div><div><br></div>SunToolkit:<br>public synchronized boolean noEvents() {<br> return queueHead == null && !isFlushing;<br> }<div><div><br></div>... 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).</div>
<div><br></div><div>Improved flush method would look like this:</div><div><br></div><div><pre style="word-wrap:break-word;white-space:pre-wrap"> public void flush() {
EventQueueItem tempQueue;
synchronized (this) {
tempQueue = queueHead;
queueHead = queueTail = null;
isFlushing = <b><i>(tempQueue != null)</i></b>;</pre><pre style="word-wrap:break-word;white-space:pre-wrap"> }
try {
while (tempQueue != null) {
eventQueue.postEvent(tempQueue.event);
tempQueue = tempQueue.next;
}
}
finally {
isFlushing = false;
}
}
</pre><div><br></div><div>Regards, Peter</div><div><br></div><div class="gmail_quote">2012/7/23 Oleg Pekhovskiy <span dir="ltr"><<a href="mailto:oleg.pekhovskiy@oracle.com" target="_blank">oleg.pekhovskiy@oracle.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi!<br>
<br>
Please review this back-port being already pushed to jdk8 but deferred for 7u6.<br>
<br>
Bug:<br>
<a href="http://bugs.sun.com/view_bug.do?bug_id=7177040" target="_blank">http://bugs.sun.com/view_bug.<u></u>do?bug_id=7177040</a><br>
<br>
Webrev:<br>
<a href="http://cr.openjdk.java.net/~bagiras/7u8/7177040.1" target="_blank">http://cr.openjdk.java.net/~<u></u>bagiras/7u8/7177040.1</a><br>
<br>
Review thread for 7u6:<br>
<a href="http://mail.openjdk.java.net/pipermail/awt-dev/2012-July/003106.html" target="_blank">http://mail.openjdk.java.net/<u></u>pipermail/awt-dev/2012-July/<u></u>003106.html</a><br>
<br>
Reviewers 7u6 & 8:<br>
Anthony Petrov, Anton Tarasov<br>
<br>
Thanks,<br>
Oleg<br>
</blockquote></div><br></div>