const Sleeper = struct
const Sleeper = struct { queue: c.dispatch.queue_t, fiber: *Fiber, fn init(queue: c.dispatch.queue_t, fiber: *Fiber) Sleeper { queue.as_object().retain(); return .{ .queue = queue, .fiber = fiber }; } fn wake(context: ?*anyopaque) callconv(.c) void { const sleeper: *Sleeper = @ptrCast(@alignCast(context)); const queue = sleeper.queue; sleeper.queue = undefined; queue.async(sleeper.fiber, &Fiber.@"resume"); queue.as_object().release(); } }