< prev index next >

src/java.base/share/classes/java/nio/Bits.java

Print this page

        

*** 30,39 **** --- 30,41 ---- import jdk.internal.misc.JavaNioAccess; import jdk.internal.misc.JavaLangRefAccess; import jdk.internal.misc.SharedSecrets; import jdk.internal.misc.Unsafe; import jdk.internal.misc.VM; + import jdk.internal.ref.CleanerFactory; + import jdk.internal.ref.CleanerImpl; /** * Access to bits, native and otherwise. */
*** 627,637 **** final JavaLangRefAccess jlra = SharedSecrets.getJavaLangRefAccess(); // retry while helping enqueue pending Reference objects // which includes executing pending Cleaner(s) which includes // Cleaner(s) that free direct buffer memory ! while (jlra.tryHandlePendingReference()) { if (tryReserveMemory(size, cap)) { return; } } --- 629,640 ---- final JavaLangRefAccess jlra = SharedSecrets.getJavaLangRefAccess(); // retry while helping enqueue pending Reference objects // which includes executing pending Cleaner(s) which includes // Cleaner(s) that free direct buffer memory ! while (jlra.tryHandlePendingReference() | // use non-short-circuit or ! CleanerImpl.getCleanerImpl(CleanerFactory.cleaner()).drainQueue()) { if (tryReserveMemory(size, cap)) { return; } }
*** 649,659 **** return; } if (sleeps >= MAX_SLEEPS) { break; } ! if (!jlra.tryHandlePendingReference()) { try { Thread.sleep(sleepTime); sleepTime <<= 1; sleeps++; } catch (InterruptedException e) { --- 652,663 ---- return; } if (sleeps >= MAX_SLEEPS) { break; } ! if (!jlra.tryHandlePendingReference() & // use non-short-circuit and ! !CleanerImpl.getCleanerImpl(CleanerFactory.cleaner()).drainQueue()) { try { Thread.sleep(sleepTime); sleepTime <<= 1; sleeps++; } catch (InterruptedException e) {
< prev index next >