public synchronized boolean requestFilter() {
		if (currentState == DONE) {
			return false;
		}
		if (hasFiltered()) {
			// the user has requested a new filter; we've already filtered, so filter again
			monitor.cancel();
			pendingRequestedState = FILTERING;
		}
		return true;
	}
Tells the job that the filter criteria has changed.  This method can be called on the
currently running job as well as the pending job.  If called on the running job, the effect
depends on the running job's state:
<ul>
	  <li>If the filter state hasn't happened yet, then nothing needs to be done as this job
			will filter later anyway.</li>
   <li>If the filter state has already been started or completed, then this method
   		attempts to stop the current process phase and cause the state machine to return to
         the filter phase.</li>
   <li>If the current job has already entered the DONE state, then the filter cannot take
    		effect in this job and a false value is returned to indicate the filter was not
         handled by this job.</li>
</ul>
@return true if the filter can be processed by this job, false if this job is essentially
already completed and therefore cannot perform the filter job.
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/threaded/TableUpdateJob.java