diff options
| author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-10-17 05:36:45 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-17 05:36:45 +0900 |
| commit | 9abf81afa8c20ea48c8515dc4bbc714118502f5e (patch) | |
| tree | 3e61fb161d0b68eb7e44c6d4e1e9f6a9ebea1c8c /library/std/src/sys | |
| parent | 75ef735d4a2e159e083889a22902a40d8265fced (diff) | |
| parent | 8c0c7ec4ec6c4f305c229d74f74f08f86a59fc69 (diff) | |
| download | rust-9abf81afa8c20ea48c8515dc4bbc714118502f5e.tar.gz rust-9abf81afa8c20ea48c8515dc4bbc714118502f5e.zip | |
Rollup merge of #77900 - Thomasdezeeuw:fdatasync, r=dtolnay
Use fdatasync for File::sync_data on more OSes Add support for the following OSes: * Android * FreeBSD: https://www.freebsd.org/cgi/man.cgi?query=fdatasync&sektion=2 * OpenBSD: https://man.openbsd.org/OpenBSD-5.8/fsync.2 * NetBSD: https://man.netbsd.org/fdatasync.2 * illumos: https://illumos.org/man/3c/fdatasync
Diffstat (limited to 'library/std/src/sys')
| -rw-r--r-- | library/std/src/sys/unix/fs.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/library/std/src/sys/unix/fs.rs b/library/std/src/sys/unix/fs.rs index 819e8ef1841..d27d6e2c565 100644 --- a/library/std/src/sys/unix/fs.rs +++ b/library/std/src/sys/unix/fs.rs @@ -787,11 +787,25 @@ impl File { unsafe fn os_datasync(fd: c_int) -> c_int { libc::fcntl(fd, libc::F_FULLFSYNC) } - #[cfg(target_os = "linux")] + #[cfg(any( + target_os = "freebsd", + target_os = "linux", + target_os = "android", + target_os = "netbsd", + target_os = "openbsd" + ))] unsafe fn os_datasync(fd: c_int) -> c_int { libc::fdatasync(fd) } - #[cfg(not(any(target_os = "macos", target_os = "ios", target_os = "linux")))] + #[cfg(not(any( + target_os = "android", + target_os = "freebsd", + target_os = "ios", + target_os = "linux", + target_os = "macos", + target_os = "netbsd", + target_os = "openbsd" + )))] unsafe fn os_datasync(fd: c_int) -> c_int { libc::fsync(fd) } |
