From 4c0b2cde3a68e65971ab7d9970a3419328d4fe0e Mon Sep 17 00:00:00 2001 From: Philip Kaufmann Date: Fri, 20 Dec 2013 15:55:01 +0100 Subject: [PATCH] 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 --- src/util.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/util.cpp b/src/util.cpp index 280798f2f..a7594c78b 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1159,9 +1159,10 @@ bool RenameOver(boost::filesystem::path src, boost::filesystem::path dest) void FileCommit(FILE *fileout) { - fflush(fileout); // harmless if redundantly called + fflush(fileout); // harmless if redundantly called #ifdef WIN32 - _commit(_fileno(fileout)); + HANDLE hFile = (HANDLE)_get_osfhandle(_fileno(fileout)); + FlushFileBuffers(hFile); #else #if defined(__linux__) || defined(__NetBSD__) fdatasync(fileno(fileout));