This is an automated email from the ASF dual-hosted git repository. jiuzhudong pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
commit 3d97bf02e49a53a69c3a0cb27635c5e69073252b Author: likun17 <[email protected]> AuthorDate: Tue Nov 12 20:58:57 2024 +0800 system/uorb:Loop bug fix Fixed the epoll issue that when multiple events come only the first POLLIN is entered. Signed-off-by: likun17 <[email protected]> --- system/uorb/uORB/epoll.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/system/uorb/uORB/epoll.c b/system/uorb/uORB/epoll.c index 147831d3f..e82c483aa 100644 --- a/system/uorb/uORB/epoll.c +++ b/system/uorb/uORB/epoll.c @@ -105,7 +105,8 @@ static int orb_loop_epoll_run(FAR struct orb_loop_s *loop) uorberr("epoll wait data in error! fd:%d", handle->fd); } } - else if (et[i].events & EPOLLOUT) + + if (et[i].events & EPOLLOUT) { if (handle->dataout_cb != NULL) { @@ -116,7 +117,8 @@ static int orb_loop_epoll_run(FAR struct orb_loop_s *loop) uorberr("epoll wait data out error! fd:%d", handle->fd); } } - else if (et[i].events & EPOLLPRI) + + if (et[i].events & EPOLLPRI) { if (handle->eventpri_cb != NULL) { @@ -127,7 +129,8 @@ static int orb_loop_epoll_run(FAR struct orb_loop_s *loop) uorberr("epoll wait events pri error! fd:%d", handle->fd); } } - else if (et[i].events & EPOLLERR) + + if (et[i].events & EPOLLERR) { if (handle->eventerr_cb != NULL) {
