<Swing Dev> [10] Review Request: 5031664 Increase thread safety of EventListenerList
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Thu Oct 26 23:18:22 UTC 2017
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
--
Best regards, Sergey.
More information about the swing-dev
mailing list