RFR: 8377950: Refactor ClassUnloader to provide explicit waiting API [v2]

Albert Mingkun Yang ayang at openjdk.org
Tue Feb 17 07:29:06 UTC 2026


> Separates GC triggering from class reclamation waiting in vmTestbase ClassUnloader.
> 
> The original implementation used an implicit wait loop regardless of caller needs. Because the necessity of waiting is caller-specific, this PR introduces an explicit `unloadClassAndWait(timeout)` API. This allows callers to document their specific reasons for waiting (e.g., race conditions with JDWP or background compilation) while keeping `unloadClass()` simple for those who don't need to wait.
> 
> - Introduced `unloadClassAndWait(timeout)` and simplified `unloadClass()`.
> - Updated `compmethunload001` and `AbstractDebuggeeTest` to use the explicit waiting API with documented rationale.
> 
> Test: tier1-5, `vmTestbase/nsk`

Albert Mingkun Yang has updated the pull request incrementally with two additional commits since the last revision:

 - copyright
 - review

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/29735/files
  - new: https://git.openjdk.org/jdk/pull/29735/files/c76dab75..925364fd

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=29735&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=29735&range=00-01

  Stats: 6 lines in 2 files changed: 0 ins; 2 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/29735.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29735/head:pull/29735

PR: https://git.openjdk.org/jdk/pull/29735


More information about the serviceability-dev mailing list