1 Star 0 Fork 32

shafeipaozi/gazelle

forked from src-openEuler/gazelle 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0141-recv-support-MSG_DONTWAIT.patch 1.30 KB
一键复制 编辑 原始数据 按行查看 历史
jinag12 提交于 2024-03-14 16:57 . sync fix rpc_pool create failed coredump
From 34c272bf7f0484a1371033c187719adc72f061d5 Mon Sep 17 00:00:00 2001
From: li_yunqing <liyunqing@kylinos.cn>
Date: Tue, 27 Feb 2024 16:58:59 +0800
Subject: [PATCH] recv support MSG_DONTWAIT
---
src/lstack/core/lstack_lwip.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/lstack/core/lstack_lwip.c b/src/lstack/core/lstack_lwip.c
index 0b339fe..7715cf3 100644
--- a/src/lstack/core/lstack_lwip.c
+++ b/src/lstack/core/lstack_lwip.c
@@ -993,6 +993,7 @@ ssize_t do_lwip_read_from_stack(int32_t fd, void *buf, size_t len, int32_t flags
{
ssize_t recvd = 0;
struct lwip_sock *sock = get_socket_by_fd(fd);
+ bool noblock = (flags & MSG_DONTWAIT) || netconn_is_nonblocking(sock->conn);
if (recv_break_for_err(sock)) {
return -1;
@@ -1005,9 +1006,9 @@ ssize_t do_lwip_read_from_stack(int32_t fd, void *buf, size_t len, int32_t flags
}
if (NETCONN_IS_UDP(sock)) {
- recvd = recv_ring_udp_read(sock, buf, len, netconn_is_nonblocking(sock->conn), addr, addrlen);
+ recvd = recv_ring_udp_read(sock, buf, len, noblock, addr, addrlen);
} else {
- recvd = recv_ring_tcp_read(sock, buf, len, netconn_is_nonblocking(sock->conn));
+ recvd = recv_ring_tcp_read(sock, buf, len, noblock);
}
/* rte_ring_count reduce lock */
--
2.27.0
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/shafeipaozi/gazelle.git
git@gitee.com:shafeipaozi/gazelle.git
shafeipaozi
gazelle
gazelle
master

搜索帮助