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)); RuntimeError("error flushing to file: %s", strerror(errno));
} }
#ifndef _WIN32
int fd = fileno(f); int fd = fileno(f);
if (fd == -1) if (fd == -1)
@ -428,7 +427,18 @@ void fflushOrDie(FILE* f)
} }
// Ensure that all data is synced before returning from this function // 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 #endif
} }