Skip to content

Commit 75d4fce

Browse files
committed
glibc wrapper only available on recent glibc releases
1 parent dc3b011 commit 75d4fce

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Diff for: src/unistd.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -4024,7 +4024,14 @@ pub fn close_range<F: std::os::fd::AsFd>(fdbegin: F, fdlast: F, flags: CloseRang
40244024

40254025
let raw = unsafe {
40264026
Errno::clear();
4027-
libc::close_range(fdbegin.as_fd().as_raw_fd() as u32, fdlast.as_fd().as_raw_fd() as u32, flags.bits() as i32)
4027+
4028+
cfg_if! {
4029+
if #[cfg(all(target_os = "linux", target_env = "gnu"))] {
4030+
libc::syscall(libc::SYS_close_range, fdbegin.as_fd().as_raw_fd() as u32, fdlast.as_fd().as_raw_fd() as u32, flags.bits() as i32) as i32
4031+
} else {
4032+
libc::close_range(fdbegin.as_fd().as_raw_fd() as u32, fdlast.as_fd().as_raw_fd() as u32, flags.bits() as i32)
4033+
}
4034+
}
40284035
};
40294036
if raw == -1 {
40304037
if Errno::last_raw() == 0 {

0 commit comments

Comments
 (0)