fix: deadlock in Cow debug checks (#18173)

Co-authored-by: DonIsaac <22823424+DonIsaac@users.noreply.github.com>
This commit is contained in:
Don Isaac
2025-03-13 16:42:06 -07:00
committed by GitHub
parent b089558674
commit 1ed87f4e83
18 changed files with 434 additions and 281 deletions

View File

@@ -5,7 +5,6 @@ const builtin = @import("builtin");
const Arena = std.heap.ArenaAllocator;
const Allocator = std.mem.Allocator;
const SmolStr = @import("../string.zig").SmolStr;
const TaggedPointerUnion = @import("../tagged_pointer.zig").TaggedPointerUnion;
/// Using u16 because anymore tokens than that results in an unreasonably high
/// amount of brace expansion (like around 32k variants to expand)

View File

@@ -34,8 +34,8 @@ const Syscall = @import("../sys.zig");
const Glob = @import("../glob.zig");
const ResolvePath = @import("../resolver/resolve_path.zig");
const DirIterator = @import("../bun.js/node/dir_iterator.zig");
const TaggedPointerUnion = @import("../tagged_pointer.zig").TaggedPointerUnion;
const TaggedPointer = @import("../tagged_pointer.zig").TaggedPointer;
const TaggedPointerUnion = @import("../ptr.zig").TaggedPointerUnion;
const TaggedPointer = @import("../ptr.zig").TaggedPointer;
pub const WorkPoolTask = @import("../work_pool.zig").Task;
pub const WorkPool = @import("../work_pool.zig").WorkPool;
const windows = bun.windows;
@@ -462,7 +462,7 @@ pub const RefCountedStr = struct {
/// A) or B) won't even mutate the environment anyway.
///
/// A way to reduce copying is to only do it when the env is mutated: copy-on-write.
pub const CowEnvMap = bun.Cow(EnvMap, struct {
pub const CowEnvMap = bun.ptr.Cow(EnvMap, struct {
pub fn copy(val: *const EnvMap) EnvMap {
return val.clone();
}

View File

@@ -16,7 +16,7 @@ const ResolvePath = @import("../resolver/resolve_path.zig");
const DirIterator = @import("../bun.js/node/dir_iterator.zig");
const CodepointIterator = @import("../string_immutable.zig").PackedCodepointIterator;
const isAllAscii = @import("../string_immutable.zig").isAllASCII;
const TaggedPointerUnion = @import("../tagged_pointer.zig").TaggedPointerUnion;
const TaggedPointerUnion = @import("../ptr.zig").TaggedPointerUnion;
pub const interpret = @import("./interpreter.zig");
pub const subproc = @import("./subproc.zig");