diff options
| author | Casey Banner <kcbanner@gmail.com> | 2022-12-06 23:15:54 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-06 23:15:54 -0500 |
| commit | 8ccb9a6ad327a4d7fbc321b33d4aa66a27a1f5ee (patch) | |
| tree | 13556a64c4a9af587f12605085b4c880334772e3 /src/main.zig | |
| parent | 14416b522e697997f21dd634bfdc70fbff59471b (diff) | |
| download | zig-8ccb9a6ad327a4d7fbc321b33d4aa66a27a1f5ee.tar.gz zig-8ccb9a6ad327a4d7fbc321b33d4aa66a27a1f5ee.zip | |
cache: Fix LockViolation during C compilation paths (#13591)
- C compilation flows didn't hold an exclusive lock on the cache manifest file when writing to it in all cases
- On windows, explicitly unlock the file lock before closing it
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig index 067a824631..7004576f46 100644 --- a/src/main.zig +++ b/src/main.zig @@ -3505,6 +3505,7 @@ fn cmdTranslateC(comp: *Compilation, arena: Allocator, enable_cache: bool) !void const translated_zig_basename = try std.fmt.allocPrint(arena, "{s}.zig", .{comp.bin_file.options.root_name}); var man: Cache.Manifest = comp.obtainCObjectCacheManifest(); + man.want_shared_lock = false; defer if (enable_cache) man.deinit(); man.hash.add(@as(u16, 0xb945)); // Random number to distinguish translate-c from compiling C objects |
