poll: fix 0 timeout

This commit is contained in:
Matheus
2022-10-15 17:36:13 -03:00
parent e883412b44
commit 6b112a528c
+2 -8
View File
@@ -24,7 +24,7 @@ syscallret syscall_poll(pollfd *fds, size_t nfds, int timeoutms){
// create the internal list
pollfd* ilist = alloc(1);
pollfd* ilist = alloc(nfds * sizeof(pollfd));
if(!ilist){
retv.errno = ENOMEM;
@@ -32,13 +32,6 @@ syscallret syscall_poll(pollfd *fds, size_t nfds, int timeoutms){
}
for(size_t fd = 0; fd < nfds; ++fd){
void* tmp = realloc(ilist,(fd+1)*sizeof(pollfd));
if(!tmp){
retv.errno = ENOMEM;
goto ret;
}
ilist[fd].fd = fds[fd].fd;
ilist[fd].events = fds[fd].events;
}
@@ -84,6 +77,7 @@ syscallret syscall_poll(pollfd *fds, size_t nfds, int timeoutms){
// TODO check for signal or timeout
if(timeoutms == 0) break;
}