public boolean start(final I input) {
        synchronized (taskMutex) {
            if (isRunning()) {
                cancel();
            }
            return startIfNotRunning(input);
        }
    }
(re-)starts the task. If task is currently running, then run is cancelled
main/src/main/java/cgeo/geocaching/utils/workertask/WorkerTask.java