@Override
    protected boolean onAdvance(int phase, int registeredParties) {
      allWorkersFinished(Phase.from(phase));
      return super.onAdvance(phase, registeredParties);
    }
Coordinates multiple workers processing OSM elements sequentially:
<ul>
<li>Ensure nodes processed first, then ways, then relations</li>
<li>Keep a count of elements processed</li>
<li>Lets workers wait to start an element type until all workers are finished with the previous element type
({@link ForWorker#arriveAndWaitForOthers(Phase)})</li>
<li>Log when starting a new phase, including how long the previous phase took and the number of elements per
second</li>
</ul>
Each worker should call {@link #forWorker()} to get a handle for that worker to coordinate with others.
planetiler-core/src/main/java/com/onthegomap/planetiler/reader/osm/OsmPhaser.java