On Thu, 5 Sep 2024 17:54:46 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> This PR proposes to add a JDK-specific monitoring and management interface 
>> for the virtual thread scheduler. The interface is named 
>> [VirtualThreadSchedulerMXBean](https://download.java.net/java/early_access/loom/docs/api/jdk.management/jdk/management/VirtualThreadSchedulerMXBean.html)
>>  and allows JMX based tooling monitor/manage the scheduler's target 
>> parallelism and monitor thread counts.
>> 
>> The JDK 5/6 era JDK-specific management interfaces are in 
>> jdk.management/com.sun.management. The proposal here is to start afresh in 
>> the jdk.management package, thus establishing a "new home" for JDK-specific 
>> management interfaces going forward.
>> 
>> jdk.test.lib.thread.VThreadRunner is test infrastructure used by several 
>> tests to set or ensure some level of parallelism. This is changed from using 
>> deep reflection to using the MXBean to access the target parallelism, which 
>> requires changes to the `@modules` tag tests in a number of tests (some 
>> tests no longer need to open java.base/java.lang).
>> 
>> (The changes proposed here have been in the loom repo for some time. A 
>> related command for the jcmd tool is also in that repo and will be proposed 
>> separately).
>
> Alan Bateman has updated the pull request with a new target base due to a 
> merge or a rebase. The incremental webrev excludes the unrelated changes 
> brought in by the merge/rebase. The pull request contains six additional 
> commits since the last revision:
> 
>  - Sync up from loom repo
>  - Merge
>  - Sync up from loom repo
>  - Merge
>  - Sync up from loom repo
>  - Initial commit

src/jdk.management/share/classes/com/sun/management/internal/VirtualThreadSchedulerImpls.java
 line 114:

> 112:                 case ForkJoinPool pool -> pool.getParallelism();
> 113:                 case ThreadPoolExecutor pool -> 
> pool.getMaximumPoolSize();
> 114:                 default -> -1;

The API docs don't seem to specify what a value of `-1` means; is it meant to 
indicate "not known"? It seems like other implementations are returning e.g. 
`MAX_VALUE` sometimes too; is that worth calling out in the doc for 
`getParallelism()`?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20816#discussion_r1745955917

Reply via email to