<Swing Dev> <SwingDev> [9] Review request: JDK-8058870 Mac: JFXPanel deadlocks in jnlp mode
Anton V. Tarasov
anton.tarasov at oracle.com
Tue Sep 23 14:59:44 UTC 2014
Thanks for the review!
Anton.
On 9/23/14 5:26 PM, Alexander Scherbatiy wrote:
>
> The fix looks good to me.
>
> Thanks,
> Alexandr.
>
> On 9/23/2014 3:57 PM, Sergey Bylokhov wrote:
>> Hi, Anton.
>> The fix looks good.
>>
>> On 22.09.2014 19:00, Anton V. Tarasov wrote:
>>> On 9/22/14 5:52 PM, Sergey Bylokhov wrote:
>>>> Hi, Anton.
>>>> I think after the fix, getFlag+setFlag are not atomic anymore in
>>>> the revalidate().
>>>
>>> I assumed revalidate() is called on EDT in case of pure Swing, and
>>> may be called from JavaFX App Thread in case of swing/javafx interop
>>> only.
>>> However, I didn't take into account swing/awt mixing where this
>>> particular method is "allowed" to be called from non-EDT threads.
>>> In this case, you're right, the getFlag+setFlag, being called on two
>>> concurrent threads, are not synchronized.
>>>
>>> Ok, I'm still trying to keep the scheme lock-free. What do you think
>>> of the following approach?
>>>
>>> http://cr.openjdk.java.net/~ant/JDK-8058870/webrev.1
>>>
>>> We're eliminating the flag and using AtomicBoolean instead.
>>>
>>> The "flags" field is private. REVALIDATE_RUNNABLE_SCHEDULED is only
>>> used for this single case. So, the only concern is serialization,
>>> for which I reinitialize the new field in readObject. At the worst
>>> case, we will have maximum two revalidate runnables in the queue,
>>> which shouldn't hit performance any noticeably (and as far as I
>>> understand, this code cares about performance only).
>>>
>>> Thanks,
>>> Anton.
>>>
>>>>
>>>> On 22.09.2014 17:36, Anton V. Tarasov wrote:
>>>>> Hello,
>>>>>
>>>>> Please review a fix:
>>>>>
>>>>> https://bugs.openjdk.java.net/browse/JDK-8058870
>>>>> http://cr.openjdk.java.net/~ant/JDK-8058870/webrev.0
>>>>>
>>>>> A deadlock has been revealed on MacOS X with JFXPanel involved in
>>>>> an app launched via JNLP. Find more details in jira, please.
>>>>>
>>>>> Thanks,
>>>>> Anton.
>>>>
>>>>
>>>
>>
>>
>
More information about the swing-dev
mailing list