authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-07-09 23:13:28-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-07-12 00:14:08-07:00
log0994e22a646a797aa91602a56a6a0cddf8cdbd28
tree55a490b3f7ba794d43327b8287310eeb13bb483a
parentdcbb3aa1f329ba0f12f8a039df62cd347b8f2559

build runner: more useful failure handling for fanotify_mark


1 files changed, 5 insertions(+), 3 deletions(-)

lib/compiler/build_runner.zig+5-3
......@@ -416,10 +416,12 @@ pub fn main() !void {
416416 const reaction_set = rs: {
417417 const gop = try w.dir_table.getOrPut(gpa, path);
418418 if (!gop.found_existing) {
419 try std.posix.fanotify_mark(w.fan_fd, .{
419 std.posix.fanotify_mark(w.fan_fd, .{
420420 .ADD = true,
421421 .ONLYDIR = true,
422 }, Watch.fan_mask, path.root_dir.handle.fd, path.subPathOpt());
422 }, Watch.fan_mask, path.root_dir.handle.fd, path.subPathOpt()) catch |err| {
423 fatal("unable to watch {}: {s}", .{ path, @errorName(err) });
424 };
423425
424426 const dir_handle = try Watch.getDirHandle(gpa, path);
425427 try w.handle_table.putNoClobber(gpa, dir_handle, .{});
......@@ -489,7 +491,7 @@ pub fn main() !void {
489491 .revents = undefined,
490492 },
491493 };
492 var caption_buf: [40]u8 = undefined;
494 var caption_buf: [std.Progress.Node.max_name_len]u8 = undefined;
493495 const caption = std.fmt.bufPrint(&caption_buf, "Watching {d} Directories", .{
494496 w.dir_table.entries.len,
495497 }) catch &caption_buf;