docs: private void deleteExtraSnapshots() {
          if (m_snapshots.size() <= m_retain) {
              setState(State.WAITING);
          } else {
              m_lastSysprocInvocation = System.currentTimeMillis();
              setState(State.DELETING);
              final int numberToDelete = m_snapshots.size() - m_retain;
              String pathsToDelete[] = new String[numberToDelete];
              String noncesToDelete[] = new String[numberToDelete];
              for (int ii = 0; ii < numberToDelete; ii++) {
                  final Snapshot s = m_snapshots.poll();
                  pathsToDelete[ii] = s.path;
                  noncesToDelete[ii] = s.nonce;
                  SNAP_LOG.info("Snapshot daemon deleting " + s.nonce);
              }
              Object params[] =
                  new Object[] {
                      pathsToDelete,
                      noncesToDelete,
                      SnapshotPathType.SNAP_AUTO.toString()
                      };
              long handle = m_nextCallbackHandle++;
              m_procedureCallbacks.put(handle, new ProcedureCallback() {
  
                  @Override
                  public void clientCallback(final ClientResponse clientResponse)
                          throws Exception {
                      processClientResponsePrivate(clientResponse);
                  }
  
              });
              m_initiator.initiateSnapshotDaemonWork("@SnapshotDelete", handle, params);
          }
      }