> Thread::getState is an API for monitoring and management purposes to report > the thread state. If a virtual thread is parked with LockSupport.parkNanos, > its state is reported as WAITING when it should be TIMED_WAITING. JVM TI > GetThreadState has the same issue in that it returns > JVMTI_THREAD_STATE_WAITING_INDEFINITELY instead of the > JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT bit set. Not a very visible issue > with debuggers because JDWP maps both states to "WAIT" but it may be noticed > by tools using other JVM TI agents. > > The change is straight-forward with additional state for > timed-parking/parked/pinned. The existing virtual/ThreadAPI.java test is > expanded to this scenario. A new test is added for JVM TI GetThreadState to > test waiting/timed-waited cases (including pinned) as test coverage seems > patchy here.
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 14 additional commits since the last revision: - Merge - Revert back to explicit TIMED_xxx states - Merge - Merge - Merge - Remove unecessary RF from test - Merge - Merge - Remove tab - Cleanup comments - ... and 4 more: https://git.openjdk.org/jdk/compare/d592852e...70b7766d ------------- Changes: - all: https://git.openjdk.org/jdk/pull/14978/files - new: https://git.openjdk.org/jdk/pull/14978/files/7b9e0d5a..70b7766d Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=14978&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=14978&range=01-02 Stats: 6773 lines in 809 files changed: 3800 ins; 1939 del; 1034 mod Patch: https://git.openjdk.org/jdk/pull/14978.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/14978/head:pull/14978 PR: https://git.openjdk.org/jdk/pull/14978