private MultiExpression.Index<FeatureProcessor> getHandlerIndex() {
    MultiExpression.Index<FeatureProcessor> result = indexedSourceElementProcessors;
    if (result == null) {
      synchronized (sourceElementProcessors) {
        result = indexedSourceElementProcessors;
        if (result == null) {
          indexedSourceElementProcessors = result = MultiExpression.of(sourceElementProcessors).index();
        }
      }
    }
    return result;
  }
Call {@code handler} for different events based on which interfaces {@code handler} implements:
{@link OsmRelationPreprocessor}, {@link FinishHandler}, {@link TilePostProcessor} or {@link LayerPostProcessor}.
planetiler-core/src/main/java/com/onthegomap/planetiler/ForwardingProfile.java