authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-08-21 01:10:35+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-08-23 12:32:14-07:00
log77c09d16f9d992b19bc7cb2d2497f8009e0250ba
tree12c3bcb70dd615ef69a2286c3a83ff9a52022579
parent47a2f2ddae9cc47ff6df7a71060bbb3f5f20f2e8

std.fs.Dir: fix updateFile() to flush the file before updating its times

AtomicFile.finish() calls flush() which renders any previous updateTimes() calls useless. Regression introduced in f2a3ac7c0534a74ee544fdf6ef9d2176a8d62389. Closes #24927.

1 files changed, 2 insertions(+), 1 deletions(-)

lib/std/fs/Dir.zig+2-1
...@@ -2583,8 +2583,9 @@ pub fn updateFile(...@@ -2583,8 +2583,9 @@ pub fn updateFile(
2583 error.ReadFailed => return src_reader.err.?,2583 error.ReadFailed => return src_reader.err.?,
2584 error.WriteFailed => return atomic_file.file_writer.err.?,2584 error.WriteFailed => return atomic_file.file_writer.err.?,
2585 };2585 };
2586 try atomic_file.flush();
2586 try atomic_file.file_writer.file.updateTimes(src_stat.atime, src_stat.mtime);2587 try atomic_file.file_writer.file.updateTimes(src_stat.atime, src_stat.mtime);
2587 try atomic_file.finish();2588 try atomic_file.renameIntoPlace();
2588 return .stale;2589 return .stale;
2589}2590}
25902591