<AWT Dev> [8] Review request for 7186109: Simplify lock machinery for PostEventQueue & EventQueue
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Tue Aug 28 08:23:22 PDT 2012
Hi, Oleg.
If I'm not missing something, the flush method became asynchronous for
some invocations. Because it can returns before flush actually happens.
This is expected?
28.08.2012 18:33, Oleg Pekhovskiy wrote:
> Hi Artem, Anthony,
>
> thank you for your proposals!
>
> We with Artem also had off-line discussion,
> so as a result I prepared improved version of fix:
> http://cr.openjdk.java.net/~bagiras/8/7186109.3/
>
> What was done:
> 1. EventQueue.detachDispatchThread(): moved
> SunToolkit.flushPnedingEvents() above the comments and added a
> separate comment to it.
> 2. Moved SunToolkitSubclass.flushPendingEvents(AppContext) method to
> SunToolkit. Deleted SunToolkitSubclass.
> 3. Moved isFlushingPendingEvents to PostEventQueue with the new name -
> isThreadLocalFlushing and made it ThreadLocal.
> 4. Left PostEventQueue.flush() unsynchronized and created
> wait()-notifyAll() synchronization mechanism to avoid blocking of
> PostEventQueue.postEvent().
>
> Looking forward to your comments!
>
> Thanks,
> Oleg
>
> 20.08.2012 20:20, Artem Ananiev wrote:
>> Hi, Oleg,
>>
>> here are a few comments:
>>
>> 1. What is the reason of keeping "isFlushingPendingEvents" in
>> SunToolkit, given that PEQ.flush() is synchronized (and therefore
>> serialized) anyway?
>>
>> 2. flushPendingEvents(AppContext) may be moved directly to
>> SunToolkit, so we don't need a separate sun-class for that.
>>
>> 3. EQ.java:1035-1040 - this comment is obsolete and must be replaced
>> by another one.
>>
>> Thanks,
>>
>> Artem
>>
>> On 8/17/2012 4:49 PM, Oleg Pekhovskiy wrote:
>>> Hi!
>>>
>>> Please review the fix for CR:
>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7186109
>>>
>>> Webrev:
>>> http://cr.openjdk.java.net/~bagiras/8/7186109.1/
>>>
>>> The following changes were made:
>>> 1. Removed flushLock from SunToolkit.flushPendingEvent()
>>> 2. Returned method PostEventQueue.flush() as 'synchronized' back
>>> 3. Added call of SunToolkit.flushPendingEvents() to
>>> EventQueue.detachDispatchThread(),
>>> right before pushPopLock.lock()
>>> 4. Removed !SunToolkit.isPostEventQueueEmpty() check from
>>> EventQueue.detachDispatchThread()
>>> 5. Removed SunToolkit.isPostEventQueueEmpty() &
>>> PostEventQueue.noEvents();
>>>
>>> Thanks,
>>> Oleg
>>> <http://cr.openjdk.java.net/%7Ebagiras/8/7186109.1/>
>
>
--
Best regards, Sergey.
More information about the awt-dev
mailing list