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
This commit is contained in:
Philip Kaufmann 2013-12-20 15:55:01 +01:00
parent 9e508b5588
commit 4c0b2cde3a

View File

@ -1161,7 +1161,8 @@ 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));