code: void stop(final Split split, final long start, final long nowNanos, final String subSimon) {
  		StopwatchSample sample = null;
  		synchronized (this) {
  			active--;
  			updateUsagesNanos(nowNanos);
  			if (subSimon == null) {
  				long splitNs = nowNanos - start;
  				addSplit(splitNs);
  				if (!manager.callback().callbacks().isEmpty()) {
  					sample = sample();
  				}
  				updateIncrementalSimons(splitNs, nowNanos);
  			}
  		}
  		if (subSimon != null) {
  			Stopwatch effectiveStopwatch = manager.getStopwatch(getName() + Manager.HIERARCHY_DELIMITER + subSimon);
  			split.setAttribute(Split.ATTR_EFFECTIVE_STOPWATCH, effectiveStopwatch);
  			effectiveStopwatch.addSplit(split);
  			return;
  		}
  		manager.callback().onStopwatchStop(split, sample);
  	}
docs: Protected method doing the stop work based on provided start nano-time.
  
  @param split Split object that has been stopped
  @param start start nano-time of the split @return split time in ns
  @param nowNanos current nano time
  @param subSimon name of the sub-stopwatch (hierarchy delimiter is added automatically), may be {@code null}