mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
std.Io.Threaded: wrangle TODOs
This commit is contained in:
parent
060fd975d9
commit
81b1bfbfbb
21
BRANCH_TODO
21
BRANCH_TODO
@ -1,21 +0,0 @@
|
||||
* Threaded: finish linux impl (all tests passing)
|
||||
* Threaded: finish macos impl
|
||||
* Threaded: finish windows impl
|
||||
* Threaded: glibc impl of netLookup
|
||||
|
||||
* eliminate dependency on std.Thread (Mutex, Condition, maybe more)
|
||||
* implement cancelRequest for non-linux posix
|
||||
* finish converting all Threaded into directly calling system functions and handling EINTR
|
||||
* audit the TODOs
|
||||
|
||||
* move max_iovecs_len to std.Io
|
||||
* address the cancelation race condition (signal received between checkCancel and syscall)
|
||||
* update signal values to be an enum
|
||||
* delete the deprecated fs.File functions
|
||||
* move fs.File.Writer to Io
|
||||
* add non-blocking flag to net and fs operations, handle EAGAIN
|
||||
* finish moving std.fs to Io
|
||||
* migrate child process into std.Io
|
||||
* eliminate std.Io.poll (it should be replaced by "select" functionality)
|
||||
* finish moving all of std.posix into Threaded
|
||||
* TCP fastopen - sends initial payload along with connection. can be done for idempotent http requests
|
||||
@ -133,7 +133,6 @@ fn worker(t: *Threaded) void {
|
||||
closure.start(closure);
|
||||
t.mutex.lock();
|
||||
if (is_concurrent) {
|
||||
// TODO also pop thread and join sometimes
|
||||
t.concurrent_count -= 1;
|
||||
}
|
||||
}
|
||||
@ -1175,7 +1174,7 @@ fn dirCreateFilePosix(
|
||||
fl_flags &= ~@as(usize, 1 << @bitOffsetOf(posix.O, "NONBLOCK"));
|
||||
while (true) {
|
||||
try t.checkCancel();
|
||||
switch (posix.errno(posix.fcntl(fd, posix.F.SETFL, fl_flags))) {
|
||||
switch (posix.errno(posix.system.fcntl(fd, posix.F.SETFL, fl_flags))) {
|
||||
.SUCCESS => break,
|
||||
.INTR => continue,
|
||||
else => |err| return posix.unexpectedErrno(err),
|
||||
@ -1304,7 +1303,7 @@ fn dirOpenFile(
|
||||
fl_flags &= ~@as(usize, 1 << @bitOffsetOf(posix.O, "NONBLOCK"));
|
||||
while (true) {
|
||||
try t.checkCancel();
|
||||
switch (posix.errno(posix.fcntl(fd, posix.F.SETFL, fl_flags))) {
|
||||
switch (posix.errno(posix.system.fcntl(fd, posix.F.SETFL, fl_flags))) {
|
||||
.SUCCESS => break,
|
||||
.INTR => continue,
|
||||
else => |err| return posix.unexpectedErrno(err),
|
||||
@ -2263,7 +2262,6 @@ fn netSendOne(
|
||||
.WSAEDESTADDRREQ => unreachable, // A destination address is required.
|
||||
.WSAEFAULT => unreachable, // The lpBuffers, lpTo, lpOverlapped, lpNumberOfBytesSent, or lpCompletionRoutine parameters are not part of the user address space, or the lpTo parameter is too small.
|
||||
.WSAEHOSTUNREACH => return error.NetworkUnreachable,
|
||||
// TODO: WSAEINPROGRESS, WSAEINTR
|
||||
.WSAEINVAL => unreachable,
|
||||
.WSAENETDOWN => return error.NetworkDown,
|
||||
.WSAENETRESET => return error.ConnectionResetByPeer,
|
||||
@ -3186,11 +3184,11 @@ fn lookupDns(
|
||||
|
||||
for (answers) |answer| {
|
||||
var it = HostName.DnsResponse.init(answer) catch {
|
||||
// TODO accept a diagnostics struct and append warnings
|
||||
// Here we could potentially add diagnostics to the results queue.
|
||||
continue;
|
||||
};
|
||||
while (it.next() catch {
|
||||
// TODO accept a diagnostics struct and append warnings
|
||||
// Here we could potentially add diagnostics to the results queue.
|
||||
continue;
|
||||
}) |record| switch (record.rr) {
|
||||
std.posix.RR.A => {
|
||||
@ -3239,7 +3237,7 @@ fn lookupHosts(
|
||||
error.Canceled => |e| return e,
|
||||
|
||||
else => {
|
||||
// TODO populate optional diagnostic struct
|
||||
// Here we could add more detailed diagnostics to the results queue.
|
||||
return error.DetectingNetworkConfigurationFailed;
|
||||
},
|
||||
};
|
||||
@ -3251,7 +3249,7 @@ fn lookupHosts(
|
||||
error.ReadFailed => switch (file_reader.err.?) {
|
||||
error.Canceled => |e| return e,
|
||||
else => {
|
||||
// TODO populate optional diagnostic struct
|
||||
// Here we could add more detailed diagnostics to the results queue.
|
||||
return error.DetectingNetworkConfigurationFailed;
|
||||
},
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user