patch 8.1.0915: fsync() may not work properly on Mac

Problem:    fsync() may not work properly on Mac.
Solution:   Use fcntl() with F_FULLFSYNC. (suggested by Justin M. Keyes)
This commit is contained in:
Bram Moolenaar
2019-02-14 12:56:36 +01:00
parent 5fd0f5052f
commit a787019518
5 changed files with 28 additions and 6 deletions

View File

@ -600,7 +600,7 @@ mf_sync(memfile_T *mfp, int flags)
*/
if (STRCMP(p_sws, "fsync") == 0)
{
if (fsync(mfp->mf_fd))
if (vim_fsync(mfp->mf_fd))
status = FAIL;
}
else
@ -617,7 +617,7 @@ mf_sync(memfile_T *mfp, int flags)
#ifdef VMS
if (STRCMP(p_sws, "fsync") == 0)
{
if (fsync(mfp->mf_fd))
if (vim_fsync(mfp->mf_fd))
status = FAIL;
}
#endif
@ -627,7 +627,7 @@ mf_sync(memfile_T *mfp, int flags)
#endif
#ifdef AMIGA
# if defined(__AROS__) || defined(__amigaos4__)
if (fsync(mfp->mf_fd) != 0)
if (vim_fsync(mfp->mf_fd) != 0)
status = FAIL;
# else
/*