authorgravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2024-07-26 14:03:20-07:00
committergravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2024-07-26 14:53:50-07:00
logc20def73af49bac435d21cd058e7b9612ef3d2a5
tree6e2378eeea681b17f263ec899a232afc5c87474d
parenta7498a6a53b2aa50274aa425c91e2e449a736cf4
signaturelock-open Commit is signed but in an unrecognized format.

riscv: workarounds for riscv threading


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

lib/std/Thread.zig+1-1
...@@ -385,7 +385,7 @@ pub fn yield() YieldError!void {...@@ -385,7 +385,7 @@ pub fn yield() YieldError!void {
385}385}
386386
387/// State to synchronize detachment of spawner thread to spawned thread387/// State to synchronize detachment of spawner thread to spawned thread
388const Completion = std.atomic.Value(enum(u8) {388const Completion = std.atomic.Value(enum(if (builtin.zig_backend == .stage2_riscv64) u32 else u8) {
389 running,389 running,
390 detached,390 detached,
391 completed,391 completed,
lib/std/heap/PageAllocator.zig-14
...@@ -34,20 +34,6 @@ fn alloc(_: *anyopaque, n: usize, log2_align: u8, ra: usize) ?[*]u8 {...@@ -34,20 +34,6 @@ fn alloc(_: *anyopaque, n: usize, log2_align: u8, ra: usize) ?[*]u8 {
34 return @ptrCast(addr);34 return @ptrCast(addr);
35 }35 }
3636
37 if (builtin.zig_backend == .stage2_riscv64) {
38 const aligned_len = mem.alignForward(usize, n, mem.page_size);
39 const slice = posix.mmap(
40 null,
41 aligned_len,
42 posix.PROT.READ | posix.PROT.WRITE,
43 .{ .TYPE = .PRIVATE, .ANONYMOUS = true },
44 -1,
45 0,
46 ) catch return null;
47 assert(mem.isAligned(@intFromPtr(slice.ptr), mem.page_size));
48 return slice.ptr;
49 }
50
51 const aligned_len = mem.alignForward(usize, n, mem.page_size);37 const aligned_len = mem.alignForward(usize, n, mem.page_size);
52 const hint = @atomicLoad(@TypeOf(std.heap.next_mmap_addr_hint), &std.heap.next_mmap_addr_hint, .unordered);38 const hint = @atomicLoad(@TypeOf(std.heap.next_mmap_addr_hint), &std.heap.next_mmap_addr_hint, .unordered);
53 const slice = posix.mmap(39 const slice = posix.mmap(