@Override
  public void force() throws IOException {
    //store globalModCount in apt header field:
    ByteBuffer headerPageBuffer = headerPage().rawPageBuffer();
    while (true) {//CAS loop:
      int currentModCount = globalModCount.get();
      int storedModCount = (int)INT_HANDLE.getVolatile(headerPageBuffer, FileHeader.GLOBAL_MOD_COUNT_OFFSET);
      if (currentModCount <= storedModCount) {
        //Stored modCount is already ahead => we're quite late, someone else is already stored 'fresher' value
        //(modCount always increases => larger value implies 'later' in happens-before sequence)
        break;
      }
      if (INT_HANDLE.compareAndSet(headerPageBuffer, FileHeader.GLOBAL_MOD_COUNT_OFFSET, storedModCount, currentModCount)) {
        break;
      }
    }

    if (MMappedFileStorage.FSYNC_ON_FLUSH_BY_DEFAULT) {
      storage.fsync();
    }
  }
@Override
  public void force()