package org.mariadb.jdbc.internal.util.scheduler; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; public class MariaDbThreadFactory implements ThreadFactory { // start from DefaultThread factory to get security groups and what not private final ThreadFactory parentFactory = Executors.defaultThreadFactory(); private final AtomicInteger threadId = new AtomicInteger(); private final String poolName; public MariaDbThreadFactory(String poolName) { this.poolName = poolName; } @Override public Thread newThread(Runnable runnable) { Thread result = parentFactory.newThread(runnable); result.setName("MariaDb-" + poolName + "-" + threadId.incrementAndGet()); result.setDaemon(true); // set as daemon so that mariaDb wont hold up shutdown return result; } }