Skip to content

Commit a4164cd

Browse files
committed
Support shutdown of the BufferCleaner thread
Signed-off-by: Peter Shipton <[email protected]>
1 parent c2c27a3 commit a4164cd

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

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

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,20 @@
2323
* questions.
2424
*/
2525

26+
/*
27+
* ===========================================================================
28+
* (c) Copyright IBM Corp. 2025, 2025 All Rights Reserved
29+
* ===========================================================================
30+
*/
31+
2632
package java.nio;
2733

2834
import java.lang.ref.PhantomReference;
2935
import java.lang.ref.Reference;
3036
import java.lang.ref.ReferenceQueue;
3137
import java.util.Objects;
3238
import jdk.internal.misc.InnocuousThread;
39+
import jdk.internal.ref.CleanerShutdown;
3340
import sun.nio.Cleaner;
3441

3542
/**
@@ -212,7 +219,9 @@ public void run() {
212219
Cleaner c = (Cleaner) queue.remove();
213220
c.clean();
214221
} catch (InterruptedException e) {
215-
// Ignore InterruptedException in cleaner thread.
222+
if (CleanerShutdown.shuttingDown()) {
223+
break;
224+
}
216225
}
217226
}
218227
}
@@ -243,7 +252,7 @@ private static void startCleaningThreadIfNeeded() {
243252
if (cleaningThread != null) {
244253
return;
245254
}
246-
cleaningThread = InnocuousThread.newThread(new CleaningRunnable());
255+
cleaningThread = InnocuousThread.newThread("BufferCleaner", new CleaningRunnable());
247256
}
248257
cleaningThread.setDaemon(true);
249258
cleaningThread.start();

0 commit comments

Comments
 (0)