The read for events in the interrupt thread may get interrupted
by signals from application. Avoid generating stray log message.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
* for epoll_wait.
*/
bytes_read = read(events[n].data.fd, &buf, bytes_read);
* for epoll_wait.
*/
bytes_read = read(events[n].data.fd, &buf, bytes_read);
+ if (bytes_read < 0) {
+ if (errno == EINTR || errno == EWOULDBLOCK)
+ continue;
RTE_LOG(ERR, EAL, "Error reading from file "
"descriptor %d: %s\n", events[n].data.fd,
strerror(errno));
RTE_LOG(ERR, EAL, "Error reading from file "
"descriptor %d: %s\n", events[n].data.fd,
strerror(errno));
- else if (bytes_read == 0)
+ } else if (bytes_read == 0)
RTE_LOG(ERR, EAL, "Read nothing from file "
"descriptor %d\n", events[n].data.fd);
RTE_LOG(ERR, EAL, "Read nothing from file "
"descriptor %d\n", events[n].data.fd);