@Override
			public void run() {

				// Always check for cancel here.  When the user closes the window we call cancel
				// on the service, but that doesn't actually cancel the task, it just ensures
				// that any call to isCancelled returns true.
				if (future.isCancelled()) {
					return;
				}
				if (isFileUpdated(file)) {
					FVEvent updateEvt = new FVEvent(EventType.FILE_CHANGED, null);
					eventListener.send(updateEvt);
				}
			}
Starts polling, or resumes polling if previously stopped.
Ghidra/Framework/Project/src/main/java/ghidra/framework/main/logviewer/ui/FileWatcher.java