On Thu, 8 Sep 2022 20:54:28 GMT, Mandy Chung <mch...@openjdk.org> wrote:
>> Modify the LoadLibraryUnload test to call gc() more a few times, allowing >> multiple gc cycles to queue the expected refs. >> Short the timeout on each cycle to 10 sec. > > test/jdk/java/lang/ClassLoader/loadLibraryUnload/LoadLibraryUnload.java line > 171: > >> 169: dequeueCount++; >> 170: } >> 171: Asserts.assertEquals(dequeueCount, LOADER_COUNT, "Too few >> cleared WeakReferences"); > > This only invokes GC `LOADER_COUNT` times. I think you may want something > like what ForceGC does: > > > int retries = (int)(Math.round(1000L * TIMEOUT_FACTOR) / 200); > for (; retries >= 0; retries--) { > if (dequeueCount == LOADER_COUNT) return; > > System.gc(); > refQueue.remove(200L); > } I'll switch to using ForceGC.wait to wait for all the WeakReferences to be cleared. Using existing logic for the gc and timing. ------------- PR: https://git.openjdk.org/jdk/pull/10223