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)
                 {

Reply via email to