diff --git a/src/main/java/bdv/viewer/ViewerPanel.java b/src/main/java/bdv/viewer/ViewerPanel.java index 612592832ad6f0b45712c57da4e6b5b673e28cbb..6a1fc49b4aa5655d0559f6f80a5332c440c1e1b6 100644 --- a/src/main/java/bdv/viewer/ViewerPanel.java +++ b/src/main/java/bdv/viewer/ViewerPanel.java @@ -260,7 +260,7 @@ public class ViewerPanel extends JPanel implements OverlayRenderer, PainterThrea renderingExecutorService = Executors.newFixedThreadPool( options.getNumRenderingThreads(), - new RenderThreadFactory() ); + new RenderThreadFactory(threadGroup) ); imageRenderer = new MultiResolutionRenderer( renderTarget, painterThread, options.getScreenScales(), @@ -1153,14 +1153,21 @@ public class ViewerPanel extends JPanel implements OverlayRenderer, PainterThrea protected static final AtomicInteger panelNumber = new AtomicInteger( 1 ); - protected class RenderThreadFactory implements ThreadFactory + protected static class RenderThreadFactory implements ThreadFactory { + private ThreadGroup threadGroup; + private final String threadNameFormat = String.format( "bdv-panel-%d-thread-%%d", panelNumber.getAndIncrement() ); private final AtomicInteger threadNumber = new AtomicInteger( 1 ); + protected RenderThreadFactory( final ThreadGroup threadGroup ) + { + this.threadGroup = threadGroup; + } + @Override public Thread newThread( final Runnable r ) {