Add Windows flavor of file sync
This commit is contained in:
Родитель
4c7919a71f
Коммит
2b2d5d6b21
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче