Add Windows flavor of file sync

This commit is contained in:
Marko Radmilac 2016-01-28 11:39:18 -08:00
Родитель 4c7919a71f
Коммит 2b2d5d6b21
1 изменённых файлов: 12 добавлений и 2 удалений

Просмотреть файл

@ -419,7 +419,6 @@ void fflushOrDie(FILE* f)
RuntimeError("error flushing to file: %s", strerror(errno));
}
#ifndef _WIN32
int fd = fileno(f);
if (fd == -1)
@ -428,7 +427,18 @@ void fflushOrDie(FILE* f)
}
// Ensure that all data is synced before returning from this function
fsync(fd);
#ifdef _WIN32
if (!FlushFileBuffers((HANDLE)_get_osfhandle(fd)))
{
RuntimeError("error syncing to file: %d", (int) ::GetLastError());
}
#else
rc = fsync(fd);
if (rc != 0)
{
RuntimeError("error syncing to file: %s", strerror(errno));
}
#endif
}