package org.infinispan.commons.executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
/**
* @author Galder ZamarreƱo
*/
public enum ScheduledThreadPoolExecutorFactory implements ThreadPoolExecutorFactory<ScheduledExecutorService> {
INSTANCE;
@Override
public ScheduledExecutorService createExecutor(ThreadFactory factory) {
ScheduledThreadPoolExecutor result = new ScheduledThreadPoolExecutor(1, factory);
result.setRemoveOnCancelPolicy(true);
return result;
}
@Override
public void validate() {
// No-op
}
public static ScheduledThreadPoolExecutorFactory create() {
return INSTANCE;
}
}