+2013-01-18 Christopher Faylor <me.cygwin2013@cgf.cx>
+
+ * mmap.cc (handler_disk_file::msync): Add call to FlushFileBuffers
+ to implement MS_SYNC.
+
2013-01-17 Christopher Faylor <me.cygwin2013@cgf.cx>
* mmap.cc (handler_disk_file::msync): Retry up to 99 times if
cygwin list. So retry 99 times and hope we get lucky. */
for (int i = 0; i < retry; i++)
if (FlushViewOfFile (addr, len))
- return 0;
+ {
+ /* FlushViewOfFile just triggers the action and returns immediately,
+ so it's equivalent to MS_ASYNC. MS_SYNC requires another call to
+ FlushFileBuffers. */
+ if (flags & MS_SYNC)
+ FlushFileBuffers (h);
+ return 0;
+ }
else if (GetLastError () != ERROR_LOCK_VIOLATION)
break;
else if (i < (retry - 1))