RFR 8005704: Update ConcurrentHashMap to v8
Chris Hegarty
chris.hegarty at oracle.com
Tue May 28 09:07:28 UTC 2013
Thank you Paul, got it.
-Chris.
On 05/28/2013 10:00 AM, Paul Sandoz wrote:
> Hi Chris,
>
> On May 27, 2013, at 4:30 PM, Chris Hegarty <chris.hegarty at oracle.com> wrote:
>> 2) KeySetView.spliterator()
>>
>> I guess the API should also report CONCURRENT, NONNULL & SUBSIZED?
>> And the implementation should return SIZED too?
>>
>> 3) Value/EntrySpliterator.spliterator() should return SIZED?
>>
>
> The CHM spliterators cannot report SIZED/SUBSIZED.
>
> On construction of a root spliterator a snapshot of the size is obtained and that size is used as the estimate, but elements can be concurrently added/removed after the size is obtained and during operations on the spliterator.
>
> Furthermore, even if the size was known at the root, the spliterators cannot report SUBSIZED since the size at the root spliterator is used as an size estimate for sub-splits, "est >>>= 1", with the assumption that the node table contains an ~ uniform distribution of nodes. See the spliterators of HashMap for such a case when there size is known at the root but not for sub-splits.
>
> Size estimates are used when it is costly/impractical to maintain and/or calculate exact sizes.
>
> Hth,
> Paul.
>
More information about the core-libs-dev
mailing list