in java/com/facebook/soloader/SysUtil.java [313:330]
public static void fsyncRecursive(File fileName) throws IOException {
if (fileName.isDirectory()) {
File[] files = fileName.listFiles();
if (files == null) {
throw new IOException("cannot list directory " + fileName);
}
for (int i = 0; i < files.length; ++i) {
fsyncRecursive(files[i]);
}
} else if (fileName.getPath().endsWith("_lock")) {
/* Do not sync! Any close(2) of a locked file counts as releasing the file for the whole
* process! */
} else {
try (RandomAccessFile file = new RandomAccessFile(fileName, "r")) {
file.getFD().sync();
}
}
}