wireless/bluetooth: break the pending read if circbuf is available

Change-Id: Ie3496c9f46bd1890dcbab157d5bbc1d2ce2b4da1
Signed-off-by: chao.an <anchao@xiaomi.com>
This commit is contained in:
chao.an
2021-03-24 01:39:29 +08:00
parent fe447997dd
commit 49dda1dd8f
+7 -1
View File
@@ -177,7 +177,7 @@ static int bt_uart_bridge_open(FAR struct file *filep)
FAR struct inode *inode = filep->f_inode;
FAR struct bt_uart_bridge_device_s *device = inode->i_private;
if (filep->f_inode->i_crefs == 1)
if (inode->i_crefs == 1)
{
device->sendlen = 0;
circbuf_reset(&device->recvbuf);
@@ -291,6 +291,12 @@ static ssize_t bt_uart_bridge_read(FAR struct file *filep,
}
}
if (!circbuf_is_empty(&device->recvbuf))
{
nxsem_post(&bridge->recvlock);
break;
}
nxsem_post(&bridge->recvlock);
}