code: private void onProgress(final int workerNumber, final int workerSize, final List<Long> pointerList, final float progress) {
  
  		if (progressCache == null) {
  			progressCache = new ProgressCache(workerSize, (onRealtimeResultListener != null));
  		}
  
  		progressCache.setProgress(workerNumber, progress, pointerList);
  
  		if (onProgressListener != null) {
  			onProgressListener.onProgress(progressCache.getProgress());
  		}
  
  		if (onRealtimeResultListener != null) {
  			onRealtimeResultListener.onRealtimeResultListener(progressCache.getProgress(), progressCache.getResultPointers());
  		}
  	}
docs: Call from each worker thread