ReplacingSerialSingleThreadExecutor.java

 1package eu.siacs.conversations.utils;
 2
 3public class ReplacingSerialSingleThreadExecutor extends SerialSingleThreadExecutor {
 4
 5	public ReplacingSerialSingleThreadExecutor(String name) {
 6		super(name);
 7	}
 8
 9	@Override
10	public synchronized void execute(final Runnable r) {
11		tasks.clear();
12		if (active instanceof Cancellable) {
13			((Cancellable) active).cancel();
14		}
15		super.execute(r);
16	}
17
18	public synchronized void cancelRunningTasks() {
19		tasks.clear();
20		if (active instanceof Cancellable) {
21			((Cancellable) active).cancel();
22		}
23	}
24}