Commit graph

12 commits

Author SHA1 Message Date
Andrew Kelley
a5d8dcc025 std.Io.Threaded.netReceive: recvmsg first, then poll
Calling recvmsg first means no poll syscall needed when messages are
already in the operating system queue. Empirically, this happens when
repeating a DNS query that has been already been made recently. In such
case, poll() is never called!
2025-10-02 18:21:24 -07:00
Andrew Kelley
8d03ec6766 std.Io.net: implement receiving connectionless messages 2025-10-02 16:30:59 -07:00
Andrew Kelley
96cf75977b std.Io: implement netSend 2025-10-02 16:30:59 -07:00
Andrew Kelley
47f18ee6a0 std.Io.net: make netSend support multiple messages
this lowers to sendmmsg on linux, and means Io.Group is no longer
needed, resulting in a more efficient implementation.
2025-10-02 16:30:59 -07:00
Andrew Kelley
46e5068e48 std.Io.net.HostName: finish implementing DNS lookup 2025-10-02 16:30:59 -07:00
Andrew Kelley
a37c0bca22 std.Io.Threaded: implement Group.cancel 2025-10-02 16:30:59 -07:00
Andrew Kelley
3c9fdf810f std.Io: implement Group API 2025-10-02 16:30:59 -07:00
Andrew Kelley
96dc44b5ea std.Io: rename asyncConcurrent to concurrent 2025-10-02 16:30:59 -07:00
Andrew Kelley
79b807bf1c Io.net: implement more networking
the next task is now implementing Io.Group
2025-10-02 16:30:59 -07:00
Andrew Kelley
888bf35ab0 Io.net: use resolve for IPv6
/etc/resolv.conf might have IPv6 addresses with scope in it, so this is
needed.
2025-10-02 16:30:59 -07:00
Andrew Kelley
dac7ae1e43 Io.net: rework IPv6 parsing and printing
extract pure functional logic into pure functions and then layer the
scope crap on top properly

the formatting code incorrectly didn't do the reverse operation
(if_indextoname). fix that with some TODO panics
2025-10-02 16:30:59 -07:00
Andrew Kelley
0f2427c5d2 std.Io: rename ThreadPool to Threaded 2025-10-02 16:30:59 -07:00
Renamed from lib/std/Io/ThreadPool.zig (Browse further)