| ... | @@ -580,6 +580,7 @@ pub fn deinit(ev: *Evented) void { | ... | @@ -580,6 +580,7 @@ pub fn deinit(ev: *Evented) void { |
| 580 | ev.stderr_mutex.deinit(); | 580 | ev.stderr_mutex.deinit(); |
| 581 | for (&ev.futexes) |*futex| futex.deinit(); | 581 | for (&ev.futexes) |*futex| futex.deinit(); |
| 582 | ev.exit_semaphore.as_object().release(); | 582 | ev.exit_semaphore.as_object().release(); |
| | 583 | ev.backing_allocator_mutex.deinit(); |
| 583 | ev.backing_allocator.free(ev.main_loop_stack[0..main_loop_stack_size]); | 584 | ev.backing_allocator.free(ev.main_loop_stack[0..main_loop_stack_size]); |
| 584 | ev.queue.as_object().release(); | 585 | ev.queue.as_object().release(); |
| 585 | } | 586 | } |
| ... | @@ -825,7 +826,7 @@ const Mutex = struct { | ... | @@ -825,7 +826,7 @@ const Mutex = struct { |
| 825 | sleeper: Sleeper = undefined, | 826 | sleeper: Sleeper = undefined, |
| 826 | cancelable: Cancelable, | 827 | cancelable: Cancelable, |
| 827 | mutex: *Mutex, | 828 | mutex: *Mutex, |
| 828 | node: std.DoublyLinkedList.Node = undefined, | 829 | node: std.DoublyLinkedList.Node = .{}, |
| 829 | | 830 | |
| 830 | fn add(context: ?*anyopaque) callconv(.c) void { | 831 | fn add(context: ?*anyopaque) callconv(.c) void { |
| 831 | const waiter: *Waiter = @ptrCast(@alignCast(context)); | 832 | const waiter: *Waiter = @ptrCast(@alignCast(context)); |
| ... | @@ -4714,7 +4715,7 @@ fn sleep(userdata: ?*anyopaque, timeout: Io.Timeout) Io.Cancelable!void { | ... | @@ -4714,7 +4715,7 @@ fn sleep(userdata: ?*anyopaque, timeout: Io.Timeout) Io.Cancelable!void { |
| 4714 | return ev.yield(.{ .after = ev.timeFromTimeout(timeout) }); | 4715 | return ev.yield(.{ .after = ev.timeFromTimeout(timeout) }); |
| 4715 | }; | 4716 | }; |
| 4716 | var waiter: SleepWaiter = .{ | 4717 | var waiter: SleepWaiter = .{ |
| 4717 | .cancelable = .{ .queue = queue, .cancel = &Futex.Waiter.canceled }, | 4718 | .cancelable = .{ .queue = queue, .cancel = &SleepWaiter.canceled }, |
| 4718 | .timer = timer, | 4719 | .timer = timer, |
| 4719 | }; | 4720 | }; |
| 4720 | timer.as_object().set_context(&waiter); | 4721 | timer.as_object().set_context(&waiter); |