private synchronized void startSnapshotTimer(boolean retryPeriod) {
		stopSnapshotTimer();
		if (snapshotPeriodMin == 0) {
			totalDelayTime = 0;
			return;
		}
		int msec = DELAYED_RETRY_PERIOD_MSEC;
		if (retryPeriod) {
			totalDelayTime += msec;
			if (totalDelayTime >= (snapshotPeriodMin * 60000)) {
				// Retry time has exceeded normal snapshot period - switch mode
				retryPeriod = false;
			}
		}
		else {
			// Reduce period to compensate for delayed snapshot
			totalDelayTime -= (snapshotPeriodMin * 60000);
			if (totalDelayTime < -DELAYED_RETRY_PERIOD_MSEC) {
				msec = -totalDelayTime;
			}
		}
		if (!retryPeriod) {
			pendingSnapshotSet.clear();
			pendingSnapshotSet.addAll(fileSet);
			totalDelayTime = 0;
			timerStart = (new Date()).getTime();
		}
		if (timer == null) {
			timer = new Timer(msec, snapshotAction);
			timer.setRepeats(false);
			timer.start();
		}
		else {
			timer.setInitialDelay(msec);
			timer.restart();
		}
	}
Tells a plugin that it is no longer needed.  The plugin should remove itself
from anything that it is registered to and release any resources.  Also,
any plugin that overrides this method should call super.dispose().
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/misc/RecoverySnapshotMgrPlugin.java