On Wed, 23 Apr 2025 17:54:03 GMT, Chen Liang <li...@openjdk.org> wrote:
>> I wonder if we could just change it to return `new >> ConcurrentSkipListSet<>(m)`. COWAL could be changed to return a new object >> too. > > The set only has a map field, and AbstractSet does not define any additional > field. The map should be fine too - two fields in AbstractMap are cleared > when cloning happens, so recreating a map from a constructor should have the > same effect. (Note a significant field `head` is not cleared upon clone, but > seems immediately replaced later in `buildFromSorted`). Both should still be > fine with this new return values. As others have mentioned, clone() needs to be re-checked wrt issuing final field fences. But can be conservatively done so here anyway. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24821#discussion_r2058163496