ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/concurrent/CopyOnWriteArrayList.java
(Generate patch)

Comparing jsr166/src/main/java/util/concurrent/CopyOnWriteArrayList.java (file contents):
Revision 1.152 by jsr166, Mon Jun 18 20:01:07 2018 UTC vs.
Revision 1.153 by jsr166, Tue Jun 19 00:00:43 2018 UTC

# Line 282 | Line 282 | public class CopyOnWriteArrayList<E>
282              CopyOnWriteArrayList<E> clone =
283                  (CopyOnWriteArrayList<E>) super.clone();
284              clone.resetLock();
285 +            // Unlike in readObject, here we cannot visibility-piggyback on the
286 +            // volatile write in setArray().
287 +            VarHandle.releaseFence();
288              return clone;
289          } catch (CloneNotSupportedException e) {
290              // this shouldn't happen, since we are Cloneable
# Line 1578 | Line 1581 | public class CopyOnWriteArrayList<E>
1581                  }});
1582          try {
1583              lockField.set(this, new Object());
1581            VarHandle.releaseFence();
1584          } catch (IllegalAccessException e) {
1585              throw new Error(e);
1586          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines