if !done {
while reader_read_next_chunk(reader) == .ReadPending ---
+ if error == .NoProgress do done = true;
}
if reader_empty(reader) do done = true;
if !done {
while reader_read_next_chunk(reader) == .ReadPending ---
+ if error == .NoProgress do done = true;
}
if reader_empty(reader) do done = true;
if !done {
while reader_read_next_chunk(reader) == .ReadPending ---
+ if error == .NoProgress do done = true;
}
if reader_empty(reader) do done = true;
// if the end is equal to start because that means that the buffer is
// completely empty.
if err == .ReadPending {
- if greedy do err = .BufferFull;
+ if greedy do err = .NoProgress;
error = err;
return err if end == 0 else .None;
}
end += n;
if err != .None {
- if err == .EOF do done = true;
+ if err == .EOF do done = true;
+ if err == .BadFile do done = true;
error = err;
return .None;
int i, res, cursor;
struct pollfd* fds;
- fds = alloca(params->data[1].of.i32 * sizeof(struct pollfd)); // Guessed size of pollfd
+ fds = alloca(params->data[1].of.i32 * sizeof(struct pollfd));
for (i=0; i<params->data[1].of.i32; i++) {
fds[i].fd = *(i32 *) ONYX_PTR(params->data[0].of.i32 + 4 * i);
- fds[i].events = -1;
+ fds[i].events = POLLIN;
fds[i].revents = 0;
}