On Fri, 21 Jul 2023 09:30:53 GMT, Viktor Klang <d...@openjdk.org> wrote:

>> Doug Lea has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   nitpicks
>
> src/java.base/share/classes/java/util/concurrent/LinkedTransferQueue.java 
> line 397:
> 
>> 395:          * True if system is a uniprocessor, occasionally rechecked.
>> 396:          */
>> 397:         private static boolean isUniprocessor =
> 
> @DougLea  If this is intentionally non-volatile, I think it is worth 
> documenting the rationale.

Added: (L348)
     * than unnecessarily requiring volatile accesses elsewhere. This
     * fence also separates accesses to field isUniprocessor.

> src/java.base/share/classes/java/util/concurrent/LinkedTransferQueue.java 
> line 446:
> 
>> 444:                         Thread.onSpinWait();
>> 445:                     else
>> 446:                         LockSupport.parkNanos(ns);
> 
> @DougLea If `ns` is sufficiently large, would it not make sense to use 
> managed blocking in case the current thread is a FJWT as below? 🤔

It's a good point, but we don't normally do this. Added (L336):
     * returns just barely too soon. As is the case in most j.u.c
     * blocking support, untimed waits use ManagedBlockers when
     * callers are ForkJoin threads, but timed waits use plain
     * parkNanos, under the rationale that known-to-be transient
     * blocking doesn't require compensation. (This decision should be
     * revisited here and elsewhere to deal with very long timeouts.)

> src/java.base/share/classes/java/util/concurrent/LinkedTransferQueue.java 
> line 612:
> 
>> 610:         else if (m != null)
>> 611:             s.selfLinkItem();
>> 612:         return m;
> 
> @DougLea I'd probably add a newline before the return statement to visually 
> distinguish that it isn't intended to be read as a part of the if-else 
> branches.

Thanks. Done.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/14317#discussion_r1270541557
PR Review Comment: https://git.openjdk.org/jdk/pull/14317#discussion_r1270543495
PR Review Comment: https://git.openjdk.org/jdk/pull/14317#discussion_r1270543842

Reply via email to