[dpdk-dev] eal/linux: fix rte_epoll_wait

Message ID 1439913234-1364-1-git-send-email-rsanford@akamai.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Robert Sanford Aug. 18, 2015, 3:53 p.m. UTC
  Function rte_epoll_wait should return when underlying call
to epoll_wait times out.

Signed-off-by: Robert Sanford <rsanford@akamai.com>
---
 lib/librte_eal/linuxapp/eal/eal_interrupts.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
  

Comments

Cunming Liang Aug. 21, 2015, 1:23 a.m. UTC | #1
Hi,

> -----Original Message-----
> From: Robert Sanford [mailto:rsanford2@gmail.com]
> Sent: Tuesday, August 18, 2015 11:54 PM
> To: Liang, Cunming; dev@dpdk.org
> Subject: [PATCH] eal/linux: fix rte_epoll_wait
> 
> Function rte_epoll_wait should return when underlying call
> to epoll_wait times out.
> 
> Signed-off-by: Robert Sanford <rsanford@akamai.com>
> ---
>  lib/librte_eal/linuxapp/eal/eal_interrupts.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
> b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
> index 3f87875..25cae6a 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
> @@ -1012,6 +1012,9 @@ rte_epoll_wait(int epfd, struct rte_epoll_event *events,
>  				strerror(errno));
>  			rc = -1;
>  			break;
> +		} else {
> +			/* rc == 0, epoll_wait timed out */
> +			break;
>  		}
>  	}
> 
> --
> 1.7.1

Acked-by: Cunming Liang <cunming.liang@intel.com>
  
Thomas Monjalon Sept. 8, 2015, 7:58 a.m. UTC | #2
> > Function rte_epoll_wait should return when underlying call
> > to epoll_wait times out.
> > 
> > Signed-off-by: Robert Sanford <rsanford@akamai.com>
> 
> Acked-by: Cunming Liang <cunming.liang@intel.com>

Applied, thanks
  

Patch

diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
index 3f87875..25cae6a 100644
--- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
+++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
@@ -1012,6 +1012,9 @@  rte_epoll_wait(int epfd, struct rte_epoll_event *events,
 				strerror(errno));
 			rc = -1;
 			break;
+		} else {
+			/* rc == 0, epoll_wait timed out */
+			break;
 		}
 	}