private synchronized void reschedule(boolean success) {
      scheduled = false;
      scheduledOplogs = null;
      notifyAll();
      if (!success) {
        return;
      }
      if (!compactorEnabled) {
        return;
      }
      if (isClosing()) {
        return;
      }
      SystemFailure.checkFailure();
      // synchronized (DiskStoreImpl.this.oplogIdToOplog) {
      if (compactorEnabled) {
        if (isCompactionEnabled()) {
          schedule(getOplogToBeCompacted());
        }
      }
      // }
    }
Just do compaction and then check to see if another needs to be done and if so schedule it.
Asif:The compactor thread checks for an oplog in the LinkedHasMap in a synchronization on the
oplogIdToOplog object. This will ensure that an addition of an Oplog to the Map does not get
missed. Notifications need not be sent if the thread is already compaction
geode-core/src/main/java/org/apache/geode/internal/cache/DiskStoreImpl.java