Wave C dropped the .threaded flag the old addThreadedUserBinary call carried, so thread-test compiled single_threaded: the heap mutex was compiled out and atomics lowered to plain ops while the fixture spawns real kernel threads — the QEMU thread-alloc case caught it (corruption under concurrent allocation), and the completion review confirmed the same finding independently. All 12 QEMU thread cases pass again.
18 lines
688 B
Zig
18 lines
688 B
Zig
//! The thread-test test fixture as a binary package (docs/build-packages-plan.md,
|
|
//! phase 2): this file names only what is specific to this binary — the shared
|
|
//! recipe and the default-import wiring live in build-support. The root build
|
|
//! consumes the artifact(s) for the boot image.
|
|
|
|
const std = @import("std");
|
|
const build_support = @import("build-support");
|
|
|
|
pub fn build(b: *std.Build) void {
|
|
const exe = build_support.userBinary(b, .{
|
|
.name = "thread-test",
|
|
.root_source_file = b.path("thread-test.zig"),
|
|
.domains = build_support.domains(b),
|
|
.threaded = true, // real atomics/TLS (docs/threading.md)
|
|
});
|
|
b.installArtifact(exe);
|
|
}
|