Commit 64ddba955a
Changed files (2)
lib
std
lib/std/c/freebsd.zig
@@ -75,7 +75,7 @@ pub const _errno = __error;
pub extern "c" var malloc_options: [*:0]const u8;
-pub extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) usize;
+pub extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) isize;
pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int;
pub extern "c" fn getrandom(buf_ptr: [*]u8, buf_len: usize, flags: c_uint) isize;
pub extern "c" fn getentropy(buf_ptr: [*]u8, buf_len: usize) c_int;
lib/std/fs.zig
@@ -478,6 +478,9 @@ pub const IterableDir = struct {
.FAULT => unreachable,
.NOTDIR => unreachable,
.INVAL => unreachable,
+ // Introduced in freebsd 13.2: directory unlinked but still open.
+ // To be consistent, iteration ends if the directory being iterated is deleted during iteration.
+ .NOENT => return null,
else => |err| return os.unexpectedErrno(err),
}
if (rc == 0) return null;