In select(), use pollinfo revents instead of events when processing poll() output.

This commit is contained in:
yellows8 2018-05-10 20:11:07 -04:00
parent c8d68ae853
commit c548a76763

View File

@ -297,21 +297,21 @@ int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struc
|| (exceptfds && FD_ISSET(i, exceptfds))) { || (exceptfds && FD_ISSET(i, exceptfds))) {
if(readfds && FD_ISSET(i, readfds)) { if(readfds && FD_ISSET(i, readfds)) {
if(pollinfo[j].events & (POLLIN|POLLHUP)) if(pollinfo[j].revents & (POLLIN|POLLHUP))
found = 1; found = 1;
else else
FD_CLR(i, readfds); FD_CLR(i, readfds);
} }
if(writefds && FD_ISSET(i, writefds)) { if(writefds && FD_ISSET(i, writefds)) {
if(pollinfo[j].events & (POLLOUT|POLLHUP)) if(pollinfo[j].revents & (POLLOUT|POLLHUP))
found = 1; found = 1;
else else
FD_CLR(i, writefds); FD_CLR(i, writefds);
} }
if(exceptfds && FD_ISSET(i, exceptfds)) { if(exceptfds && FD_ISSET(i, exceptfds)) {
if(pollinfo[j].events & POLLERR) if(pollinfo[j].revents & POLLERR)
found = 1; found = 1;
else else
FD_CLR(i, exceptfds); FD_CLR(i, exceptfds);