| ... | @@ -818,10 +818,11 @@ test "Event broadcast" { | ... | @@ -818,10 +818,11 @@ test "Event broadcast" { |
| 818 | event: Io.Event = .unset, | 818 | event: Io.Event = .unset, |
| 819 | counter: std.atomic.Value(usize) = std.atomic.Value(usize).init(num_threads), | 819 | counter: std.atomic.Value(usize) = std.atomic.Value(usize).init(num_threads), |
| 820 | | 820 | |
| 821 | fn wait(self: *@This()) void { | 821 | fn wait(self: *@This()) !void { |
| 822 | if (self.counter.fetchSub(1, .acq_rel) == 1) { | 822 | if (self.counter.fetchSub(1, .acq_rel) == 1) { |
| 823 | self.event.set(io); | 823 | self.event.set(io); |
| 824 | } | 824 | } |
| | 825 | try self.event.wait(io); |
| 825 | } | 826 | } |
| 826 | }; | 827 | }; |
| 827 | | 828 | |
| ... | @@ -829,9 +830,9 @@ test "Event broadcast" { | ... | @@ -829,9 +830,9 @@ test "Event broadcast" { |
| 829 | start_barrier: Barrier = .{}, | 830 | start_barrier: Barrier = .{}, |
| 830 | finish_barrier: Barrier = .{}, | 831 | finish_barrier: Barrier = .{}, |
| 831 | | 832 | |
| 832 | fn run(self: *@This()) void { | 833 | fn run(self: *@This()) !void { |
| 833 | self.start_barrier.wait(); | 834 | try self.start_barrier.wait(); |
| 834 | self.finish_barrier.wait(); | 835 | try self.finish_barrier.wait(); |
| 835 | } | 836 | } |
| 836 | }; | 837 | }; |
| 837 | | 838 | |
| ... | @@ -841,5 +842,5 @@ test "Event broadcast" { | ... | @@ -841,5 +842,5 @@ test "Event broadcast" { |
| 841 | for (&threads) |*t| t.* = try std.Thread.spawn(.{}, Context.run, .{&ctx}); | 842 | for (&threads) |*t| t.* = try std.Thread.spawn(.{}, Context.run, .{&ctx}); |
| 842 | defer for (threads) |t| t.join(); | 843 | defer for (threads) |t| t.join(); |
| 843 | | 844 | |
| 844 | ctx.run(); | 845 | try ctx.run(); |
| 845 | } | 846 | } |