Changeset View
Changeset View
Standalone View
Standalone View
src/util/system.cpp
Show First 20 Lines • Show All 1,135 Lines • ▼ Show 20 Lines | |||||
#ifdef WIN32 | #ifdef WIN32 | ||||
HANDLE hFile = (HANDLE)_get_osfhandle(_fileno(file)); | HANDLE hFile = (HANDLE)_get_osfhandle(_fileno(file)); | ||||
if (FlushFileBuffers(hFile) == 0) { | if (FlushFileBuffers(hFile) == 0) { | ||||
LogPrintf("%s: FlushFileBuffers failed: %d\n", __func__, | LogPrintf("%s: FlushFileBuffers failed: %d\n", __func__, | ||||
GetLastError()); | GetLastError()); | ||||
return false; | return false; | ||||
} | } | ||||
#else | #else | ||||
#if defined(__linux__) || defined(__NetBSD__) | #if defined(HAVE_FDATASYNC) | ||||
// Ignore EINVAL for filesystems that don't support sync | // Ignore EINVAL for filesystems that don't support sync | ||||
if (fdatasync(fileno(file)) != 0 && errno != EINVAL) { | if (fdatasync(fileno(file)) != 0 && errno != EINVAL) { | ||||
LogPrintf("%s: fdatasync failed: %d\n", __func__, errno); | LogPrintf("%s: fdatasync failed: %d\n", __func__, errno); | ||||
return false; | return false; | ||||
} | } | ||||
#elif defined(MAC_OSX) && defined(F_FULLFSYNC) | #elif defined(MAC_OSX) && defined(F_FULLFSYNC) | ||||
// Manpage says "value other than -1" is returned on success | // Manpage says "value other than -1" is returned on success | ||||
if (fcntl(fileno(file), F_FULLFSYNC, 0) == -1) { | if (fcntl(fileno(file), F_FULLFSYNC, 0) == -1) { | ||||
▲ Show 20 Lines • Show All 249 Lines • Show Last 20 Lines |