]> git.feebdaed.xyz Git - 0xmirror/f-stack.git/commitdiff
Update ff_socket_ops.c
authorliujinhu_llpt <17839916631@163.com>
Mon, 24 Mar 2025 08:26:50 +0000 (16:26 +0800)
committerGitHub <noreply@github.com>
Mon, 24 Mar 2025 08:26:50 +0000 (16:26 +0800)
chaneg sem_flag condition

adapter/syscall/ff_socket_ops.c

index 78504daf674b0d1c43b57236634134feae4f7227..ca255de78e8b36b0784b0a3d73c45df12958b7e9 100644 (file)
@@ -308,9 +308,18 @@ ff_sys_epoll_wait(struct ff_epoll_wait_args *args)
 
 #ifdef FF_PRELOAD_POLLING_MODE
     /*
-     * We set sem_flag 1, when set sc->status = FF_SC_REP, set sem_flag 0.
+     * If an event is generated or error occurs, user app epoll_wait return imme.
      */
-    sem_flag = 1;
+    if (ret != 0) {
+        sem_flag = 1;
+    } else {
+        if (args->timeout < 0) {
+            /* -1 : Block user app until an event or error occurs. */
+            sem_flag = 0;
+        } else {
+            sem_flag = 1;
+        }
+    }
 #else
     /*
      * If timeout is 0, and no event triggered,