<AWT Dev> [9] Review request for 8031694: [macosx] TwentyThousandTest test intermittently hangs

Anthony Petrov anthony.petrov at oracle.com
Fri Feb 7 06:48:27 PST 2014


Hi Oleg,

This code is very tricky. I like it that we process any events that 
might be posted to the queue after the current EDT dies. However, could 
you please clarify how initializing a new EDT is any different from not 
letting the old one die? I.e. could we just not kill the old EDT if we 
see there are more events in the queue? If not, what exact difference 
does you solution bring?

It's not that I'm against your fix, it looks good actually. I'd just 
like to understand the difference. Please elaborate.
Also, I recall we've fixed a number of bugs in this area. Are we sure we 
don't regress after this fix?

--
best regards,
Anthony

On 2/7/2014 4:31 AM, Oleg Pekhovskiy wrote:
> Hi all,
>
> please review the next version of fix:
> http://cr.openjdk.java.net/~bagiras/8031694.2/
>
> We with Artem Ananiev had off-line discussion and he offered let the
> dying EDT to die
> and process unhandled events by forcing another EDT start.
>
> Thanks,
> Oleg
>
> On 01/28/2014 05:32 AM, Oleg Pekhovskiy wrote:
>> Hi all,
>>
>> please review the fix
>> http://cr.openjdk.java.net/~bagiras/8031694.1/
>> for
>> https://bugs.openjdk.java.net/browse/JDK-8031694
>>
>> During forward-port of JDK-7189350 EDT.doDispatch was not taken into
>> account when calling EventQueue.detachDispatchThread().
>> As a result harmful optimization of this method occurred.
>> So when doDispatch became false, no more events in QventQueue were
>> handled before EDT shutdown.
>> I kept the optimization but added the check to
>> EDT.pumpEventsForFilter() that EventQueue is not empty to keep pumping.
>>
>> Thanks,
>> Oleg
>


More information about the awt-dev mailing list