int fd = PosixFileIO.openFd(file, EnumSet.of(OpenOption.READ_ONLY)); try { PosixFileIO.fsyncFd(fd);
@Override protected void reopen() throws IOException { closeFd(fd()); EnumSet<OpenOption> options = EnumSet.noneOf(OpenOption.class); if (isReadOnly()) { options.add(OpenOption.READ_ONLY); } if ((mReopenOptions & REOPEN_SYNC_IO) != 0) { options.add(OpenOption.SYNC_IO); } if ((mReopenOptions & REOPEN_NON_DURABLE) != 0) { options.add(OpenOption.NON_DURABLE); } if ((mReopenOptions & REOPEN_DIRECT_IO) != 0) { options.add(OpenOption.DIRECT_IO); } mFileDescriptor = openFd(mFile, options); }
int fd = PosixFileIO.openFd(file, EnumSet.of(OpenOption.READ_ONLY)); try { PosixFileIO.fsyncFd(fd);
int fd = PosixFileIO.openFd(file, EnumSet.of(OpenOption.READ_ONLY)); try { PosixFileIO.fsyncFd(fd);
@Override protected void reopen() throws IOException { mAccessLatch.acquireShared(); try { closeFd(fd()); EnumSet<OpenOption> options = EnumSet.noneOf(OpenOption.class); if (isReadOnly()) { options.add(OpenOption.READ_ONLY); } if ((mReopenOptions & REOPEN_SYNC_IO) != 0) { options.add(OpenOption.SYNC_IO); } if ((mReopenOptions & REOPEN_NON_DURABLE) != 0) { options.add(OpenOption.NON_DURABLE); } mFileDescriptor = openFd(mFile, options); } finally { mAccessLatch.releaseShared(); } }
@Override protected void reopen() throws IOException { mAccessLatch.acquireShared(); try { closeFd(fd()); EnumSet<OpenOption> options = EnumSet.noneOf(OpenOption.class); if (isReadOnly()) { options.add(OpenOption.READ_ONLY); } if ((mReopenOptions & REOPEN_SYNC_IO) != 0) { options.add(OpenOption.SYNC_IO); } if ((mReopenOptions & REOPEN_NON_DURABLE) != 0) { options.add(OpenOption.NON_DURABLE); } mFileDescriptor = openFd(mFile, options); } finally { mAccessLatch.releaseShared(); } }
mFileDescriptor = openFd(file, options); } finally { mAccessLock.releaseExclusive();
PosixFileIO(File file, EnumSet<OpenOption> options) throws IOException { super(options); mFile = file; if (options.contains(OpenOption.NON_DURABLE)) { mReopenOptions = REOPEN_NON_DURABLE; } else { mReopenOptions = options.contains(OpenOption.SYNC_IO) ? REOPEN_SYNC_IO : 0; if (options.contains(OpenOption.CREATE)) { new JavaFileIO(file, options, 1, false).close(); } } mReadahead = options.contains(OpenOption.READAHEAD); mCloseDontNeed = options.contains(OpenOption.CLOSE_DONTNEED); mAccessLatch = new Latch(); mAccessLatch.acquireExclusive(); try { mFileDescriptor = openFd(file, options); } finally { mAccessLatch.releaseExclusive(); } mBufRef = new ThreadLocal<>(); if (options.contains(OpenOption.MAPPED)) { map(); } if (options.contains(OpenOption.CREATE)) { dirSync(file); } }
PosixFileIO(File file, EnumSet<OpenOption> options) throws IOException { super(options); mFile = file; if (options.contains(OpenOption.NON_DURABLE)) { mReopenOptions = REOPEN_NON_DURABLE; } else { mReopenOptions = options.contains(OpenOption.SYNC_IO) ? REOPEN_SYNC_IO : 0; if (options.contains(OpenOption.CREATE)) { new JavaFileIO(file, options, 1, false).close(); } } mAccessLatch = new Latch(); mAccessLatch.acquireExclusive(); try { mFileDescriptor = openFd(file, options); } finally { mAccessLatch.releaseExclusive(); } mBufRef = new ThreadLocal<>(); if (options.contains(OpenOption.MAPPED)) { map(); } if (options.contains(OpenOption.CREATE)) { dirSync(file); } }