commit fefdbca6e62145a20777789961262f15c2bf6cbe (tree)
parent 5d745d94fbe30334ce0695cdf7118fb526313aed
Author: Frank Denis <github@pureftpd.org>
Date: Sat, 20 Apr 2024 13:11:15 +0200
Fix WASI threads, again
Properly call the entrypoint when it doesn't return an optional error,
and use the per-thread copy of the arguments list.
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig
@@ -844,19 +844,19 @@ const WasiThreadImpl = struct {
const bad_fn_ret = "expected return type of startFn to be 'u8', 'noreturn', 'void', or '!void'";
switch (@typeInfo(@typeInfo(@TypeOf(f)).Fn.return_type.?)) {
.NoReturn, .Void => {
- @call(.auto, w, args);
+ @call(.auto, f, w.args);
},
.Int => |info| {
if (info.bits != 8) {
@compileError(bad_fn_ret);
}
- _ = @call(.auto, w, args); // WASI threads don't support exit status, ignore value
+ _ = @call(.auto, f, w.args); // WASI threads don't support exit status, ignore value
},
.ErrorUnion => |info| {
if (info.payload != void) {
@compileError(bad_fn_ret);
}
- @call(.auto, f, args) catch |err| {
+ @call(.auto, f, w.args) catch |err| {
std.debug.print("error: {s}\n", .{@errorName(err)});
if (@errorReturnTrace()) |trace| {
std.debug.dumpStackTrace(trace.*);