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

Reply via email to