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