Browse Source

Win32: use a more modern API call in FileCommit()

- this seems to be a more recent API call and also supports e.g. SMB3,
  ReFS, which is not guaranteed for commit_()
- link to MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364439%28v=vs.85%29.aspx
0.10
Philip Kaufmann 11 years ago
parent
commit
4c0b2cde3a
  1. 5
      src/util.cpp

5
src/util.cpp

@ -1159,9 +1159,10 @@ bool RenameOver(boost::filesystem::path src, boost::filesystem::path dest)
void FileCommit(FILE *fileout) void FileCommit(FILE *fileout)
{ {
fflush(fileout); // harmless if redundantly called fflush(fileout); // harmless if redundantly called
#ifdef WIN32 #ifdef WIN32
_commit(_fileno(fileout)); HANDLE hFile = (HANDLE)_get_osfhandle(_fileno(fileout));
FlushFileBuffers(hFile);
#else #else
#if defined(__linux__) || defined(__NetBSD__) #if defined(__linux__) || defined(__NetBSD__)
fdatasync(fileno(fileout)); fdatasync(fileno(fileout));

Loading…
Cancel
Save