| ... | ... | @@ -2461,7 +2461,10 @@ fn cancel( |
| 2461 | 2461 | } |
| 2462 | 2462 | |
| 2463 | 2463 | fn futexWait(userdata: ?*anyopaque, ptr: *const u32, expected: u32, timeout: Io.Timeout) Io.Cancelable!void { |
| 2464 | | if (builtin.single_threaded) unreachable; // Deadlock. |
| 2464 | if (builtin.single_threaded) { |
| 2465 | assert(timeout != .none); // Deadlock. |
| 2466 | return; |
| 2467 | } |
| 2465 | 2468 | const t: *Threaded = @ptrCast(@alignCast(userdata)); |
| 2466 | 2469 | const t_io = ioBasic(t); |
| 2467 | 2470 | const timeout_ns: ?u64 = ns: { |
| ... | ... | @@ -2479,7 +2482,7 @@ fn futexWaitUncancelable(userdata: ?*anyopaque, ptr: *const u32, expected: u32) |
| 2479 | 2482 | } |
| 2480 | 2483 | |
| 2481 | 2484 | fn futexWake(userdata: ?*anyopaque, ptr: *const u32, max_waiters: u32) void { |
| 2482 | | if (builtin.single_threaded) unreachable; // Nothing to wake up. |
| 2485 | if (builtin.single_threaded) return; // Nothing to wake up. |
| 2483 | 2486 | const t: *Threaded = @ptrCast(@alignCast(userdata)); |
| 2484 | 2487 | _ = t; |
| 2485 | 2488 | Thread.futexWake(ptr, max_waiters); |