<Swing Dev> [10] Review Request: 5031664 Increase thread safety of EventListenerList
Alexander Zvegintsev
alexander.zvegintsev at oracle.com
Fri Nov 10 05:08:34 UTC 2017
looks fine to me.
Thanks,
Alexander.
On 10/27/2017 04:48 AM, Sergey Bylokhov wrote:
> Hello,
> Please review the fix for jdk10.
>
> The EventListenerList class was implemented to be thread safe. To
> achieve the correct state of the object:
> - two mutators(add/remove) were marked as synchronized.
> - the internal array is updated via copy-on-write, the internal array
> is never modified after it was set.
>
> It was assumed that the getXXX methods will get the value which was
> already set by the mutator or the previous value if mutator is
> in-progress but was not update the array. The problem is that the
> getXXX is not necessary read the value which was set, because of lack
> of happens-before between add/remove and getXXX. In the fix the array
> was marked as volatile to solve the problem.
>
> The CSR will be created after the technical review (the field is
> protected in public class)
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-5031664
> Webrev can be found at:
> http://cr.openjdk.java.net/~serb/5031664/webrev.00
>
>
More information about the swing-dev
mailing list