code: private static void fileLockedIO(
              File file, FileChannel fileChannel, FileIOAction fileIOAction) {
          fileLockingControl.compute(file, (k, v) -> {
              try {
                  try (FileLock ignored = fileChannel.lock()) {
                      fileIOAction.fileIOAction();
                  }
                  return null;
              } catch (IOException e) {
                  throw Jvm.rethrow(e);
              }
          });
      }
docs: When Chronicle Maps are created using {@link #createPersistedTo(File)} or
  {@link #recoverPersistedTo(File, boolean)} or {@link
  #createOrRecoverPersistedTo(File, boolean)} methods, file lock on the Chronicle Map's file is
  acquired, that shouldn't be done from concurrent threads within the same JVM process. So
  creation of Chronicle Maps persisted to the same File should be synchronized across JVM's
  threads. Simple way would be to synchronize on some static (lock) object, but would serialize
  all Chronicle Maps creations (persisted to any files), ConcurrentHashMap#compute() gives more
  scalability. ConcurrentHashMap is used effectively for lock striping only, because the
  entries are not even landing the map, because compute() always returns null.