src/dpdk/lib/librte_eventdev/rte_event_eth_rx_adapter.c
static void *
rxa_intr_thread(void *arg)
{
	struct rte_event_eth_rx_adapter *rx_adapter = arg;
	struct rte_epoll_event *epoll_events = rx_adapter->epoll_events;
	int n, i;

	while (1) {
		n = rte_epoll_wait(rx_adapter->epd, epoll_events,
				RTE_EVENT_ETH_INTR_RING_SIZE, -1);
		if (unlikely(n < 0))
			RTE_EDEV_LOG_ERR("rte_epoll_wait returned error %d",
					n);
		for (i = 0; i < n; i++) {
			rxa_intr_ring_enqueue(rx_adapter,
					epoll_events[i].epdata.data);
		}
	}

	return NULL;
}
/* pthread callback handling interrupt mode receive queues
 * After receiving an Rx interrupt, it enqueues the port id and queue id of the
 * interrupting queue to the adapter's ring buffer for interrupt events.
 * These events are picked up by rxa_intr_ring_dequeue() which is invoked from
 * the adapter service function.
 */
pthread callback handling interrupt mode receive queues
After receiving an Rx interrupt, it enqueues the port id and queue id of the
interrupting queue to the adapter's ring buffer for interrupt events.
These events are picked up by rxa_intr_ring_dequeue() which is invoked from
the adapter service function.
pthread callback handling interrupt mode receive queues After receiving an Rx interrupt it enqueues the port id and queue id of the interrupting queue to the adapter ' s ring buffer for interrupt events . These events are picked up by rxa_intr_ring_dequeue () which is invoked from the adapter service function .
static void *
rxa_intr_thread(void *arg)
{
	struct rte_event_eth_rx_adapter *rx_adapter = arg;
	struct rte_epoll_event *epoll_events = rx_adapter->epoll_events;
	int n, i;
	while (1) {
		n = rte_epoll_wait(rx_adapter->epd, epoll_events,
				RTE_EVENT_ETH_INTR_RING_SIZE, -1);
		if (unlikely(n < 0))
			RTE_EDEV_LOG_ERR("rte_epoll_wait returned error %d",
					n);
		for (i = 0; i < n; i++) {
			rxa_intr_ring_enqueue(rx_adapter,
					epoll_events[i].epdata.data);
		}
	}
	return NULL;
}
static void * rxa_intr_thread ( void * arg ) { struct rte_event_eth_rx_adapter * rx_adapter = arg ; struct rte_epoll_event * epoll_events = rx_adapter -> epoll_events ; int n , i ; while ( 1 ) { n = rte_epoll_wait ( rx_adapter -> epd , epoll_events , RTE_EVENT_ETH_INTR_RING_SIZE , -1 ) ; if ( unlikely ( n < 0 ) ) RTE_EDEV_LOG_ERR ( " " , n ) ; for ( i = 0 ; i < n ; i ++ ) { rxa_intr_ring_enqueue ( rx_adapter , epoll_events [ i ] . epdata . data ) ; } } return NULL ; }
pthread callback handling interrupt mode receive queues
 After receiving an Rx interrupt, it enqueues the port id and queue id of the
 interrupting queue to the adapter's ring buffer for interrupt events.
pthread callback handling interrupt mode receive queues After receiving an Rx interrupt it enqueues the port id and queue id of the interrupting queue to the adapter ' s ring buffer for interrupt events .