[dpdk-dev,3/3] rte_epoll_wait: allow EINTR to be passed to caller
Commit Message
Otherwise the caller will not be able to handle a return from a signal
handler.
Signed-off-by: Matthew Hall <mhall@mhcomputing.net>
---
lib/librte_eal/linuxapp/eal/eal_interrupts.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
@@ -1047,8 +1047,10 @@ rte_epoll_wait(int epfd, struct rte_epoll_event *events,
rc = eal_epoll_process_event(evs, rc, events);
break;
} else if (rc < 0) {
- if (errno == EINTR)
- continue;
+ if (errno == EINTR) {
+ /* timeout early (such as thread shutdown) */
+ break;
+ }
/* epoll_wait fail */
RTE_LOG(ERR, EAL, "epoll_wait returns with fail %s\n",
strerror(errno));