╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ serve_common.zig ─────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │http│ ssh │ │ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
77 78 fn run(self: @This()) void { 79 while (true) { 80 const stream = self.net_server.accept(self.io) catch |accept_err| { 81 if (accept_err == error.Canceled) return; 82 logError(self.io, self.err, "{s} accept failed: {s}\n", .{ self.name, @errorName(accept_err) }); 83 continue; 84 }; 85 self.tasks.async(self.io, Conn.run, .{Conn{ .context = self.context, .stream = stream }}); 86 } 87 } 88 }; 89 90 tasks.async(io, Listener.run, .{Listener{ 91 .io = io, 92 .net_server = net_server, 93 .tasks = tasks, 94 .err = err, 95 .name = name, 96 .context = context, 97 }}); 98 } 99