diff options
Diffstat (limited to 'runtime/stream.c')
-rw-r--r-- | runtime/stream.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/runtime/stream.c b/runtime/stream.c index 605a9771..8098f778 100644 --- a/runtime/stream.c +++ b/runtime/stream.c @@ -961,6 +961,12 @@ finalize_it: * is worth (read: data loss may occur where we otherwise might not * have it). -- rgerhards, 2009-06-08 */ +#undef SYNCCALL +#if HAVE_FDATASYNC +# define SYNCCALL(x) fdatasync(x) +#else +# define SYNCCALL(x) fsync(x) +#endif static rsRetVal syncFile(strm_t *pThis) { @@ -971,7 +977,7 @@ syncFile(strm_t *pThis) FINALIZE; /* TTYs can not be synced */ DBGPRINTF("syncing file %d\n", pThis->fd); - ret = fdatasync(pThis->fd); + ret = SYNCCALL(pThis->fd); if(ret != 0) { char errStr[1024]; int err = errno; @@ -987,7 +993,7 @@ syncFile(strm_t *pThis) finalize_it: RETiRet; } - +#undef SYNCCALL /* physically write to the output file. the provided data is ready for * writing (e.g. zipped if we are requested to do that). |