MINOR: poll/epoll: move detection of RDHUP support earlier

Let's move the detection of support for RDHUP earlier and out of the
FD update chain, as it complicates its simplification.
This commit is contained in:
Willy Tarreau 2021-07-29 16:19:24 +02:00
parent a199a17d72
commit 53a16187fd
2 changed files with 6 additions and 6 deletions

View File

@ -222,6 +222,9 @@ static void _do_poll(struct poller *p, int exp, int wake)
e = epoll_events[count].events;
fd = epoll_events[count].data.fd;
if ((e & EPOLLRDHUP) && !(cur_poller.flags & HAP_POLL_F_RDHUP))
_HA_ATOMIC_OR(&cur_poller.flags, HAP_POLL_F_RDHUP);
#ifdef DEBUG_FD
_HA_ATOMIC_INC(&fdtab[fd].event_count);
#endif
@ -245,9 +248,6 @@ static void _do_poll(struct poller *p, int exp, int wake)
((e & EPOLLHUP) ? FD_EV_SHUT_RW : 0) |
((e & EPOLLERR) ? FD_EV_ERR_RW : 0);
if ((e & EPOLLRDHUP) && !(cur_poller.flags & HAP_POLL_F_RDHUP))
_HA_ATOMIC_OR(&cur_poller.flags, HAP_POLL_F_RDHUP);
fd_update_events(fd, n);
}
/* the caller will take care of cached events */

View File

@ -218,6 +218,9 @@ static void _do_poll(struct poller *p, int exp, int wake)
int e = poll_events[count].revents;
fd = poll_events[count].fd;
if ((e & POLLRDHUP) && !(cur_poller.flags & HAP_POLL_F_RDHUP))
_HA_ATOMIC_OR(&cur_poller.flags, HAP_POLL_F_RDHUP);
#ifdef DEBUG_FD
_HA_ATOMIC_INC(&fdtab[fd].event_count);
#endif
@ -245,9 +248,6 @@ static void _do_poll(struct poller *p, int exp, int wake)
((e & POLLHUP) ? FD_EV_SHUT_RW : 0) |
((e & POLLERR) ? FD_EV_ERR_RW : 0);
if ((e & POLLRDHUP) && !(cur_poller.flags & HAP_POLL_F_RDHUP))
_HA_ATOMIC_OR(&cur_poller.flags, HAP_POLL_F_RDHUP);
fd_update_events(fd, n);
}