package pl.droidsonroids.gif;
import java.util.concurrent.ScheduledThreadPoolExecutor;
/**
* Default executor for rendering tasks - {@link java.util.concurrent.ScheduledThreadPoolExecutor}
* with 1 worker thread and {@link java.util.concurrent.ThreadPoolExecutor.DiscardPolicy}.
*/
final class GifRenderingExecutor extends ScheduledThreadPoolExecutor {
private GifRenderingExecutor() {
super(1, new DiscardPolicy());
}
@SuppressWarnings("StaticNonFinalField") //double-checked singleton initialization
private static volatile GifRenderingExecutor instance = null;
public static GifRenderingExecutor getInstance() {
if (instance == null) {
synchronized (GifRenderingExecutor.class) {
if (instance == null) {
instance = new GifRenderingExecutor();
}
}
}
return instance;
}
}