You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2020/09/22 02:30:28 UTC

[incubator-nuttx] branch master updated: pipe: check for writers first in case of pipe empty

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 65bb956  pipe: check for writers first in case of pipe empty
65bb956 is described below

commit 65bb956e5eb921bbe7b1c4beed18979d7c725703
Author: spiriou <si...@korys.io>
AuthorDate: Mon Sep 21 11:41:20 2020 +0200

    pipe: check for writers first in case of pipe empty
---
 drivers/pipes/pipe_common.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/pipes/pipe_common.c b/drivers/pipes/pipe_common.c
index e21f169..0bf6095 100644
--- a/drivers/pipes/pipe_common.c
+++ b/drivers/pipes/pipe_common.c
@@ -426,20 +426,20 @@ ssize_t pipecommon_read(FAR struct file *filep, FAR char *buffer, size_t len)
 
   while (dev->d_wrndx == dev->d_rdndx)
     {
-      /* If O_NONBLOCK was set, then return EGAIN */
+      /* If there are no writers on the pipe, then return end of file */
 
-      if (filep->f_oflags & O_NONBLOCK)
+      if (dev->d_nwriters <= 0)
         {
           nxsem_post(&dev->d_bfsem);
-          return -EAGAIN;
+          return 0;
         }
 
-      /* If there are no writers on the pipe, then return end of file */
+      /* If O_NONBLOCK was set, then return EGAIN */
 
-      if (dev->d_nwriters <= 0)
+      if (filep->f_oflags & O_NONBLOCK)
         {
           nxsem_post(&dev->d_bfsem);
-          return 0;
+          return -EAGAIN;
         }
 
       /* Otherwise, wait for something to be written to the pipe */