Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
ddee7344
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
ddee7344
编写于
5月 13, 2022
作者:
dengyihao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(rpc): avoid fd leak
上级
4f7886d2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
10 deletion
+17
-10
source/libs/transport/src/transSrv.c
source/libs/transport/src/transSrv.c
+17
-10
未找到文件。
source/libs/transport/src/transSrv.c
浏览文件 @
ddee7344
...
...
@@ -360,14 +360,14 @@ void uvOnSendCb(uv_write_t* req, int status) {
tTrace
(
"server conn %p data already was written on stream"
,
conn
);
if
(
!
transQueueEmpty
(
&
conn
->
srvMsgs
))
{
SSrvMsg
*
msg
=
transQueuePop
(
&
conn
->
srvMsgs
);
if
(
msg
->
type
==
Release
&&
conn
->
status
!=
ConnNormal
)
{
conn
->
status
=
ConnNormal
;
transUnrefSrvHandle
(
conn
);
reallocConnRefHandle
(
conn
);
destroySmsg
(
msg
);
transQueueClear
(
&
conn
->
srvMsgs
);
return
;
}
//
if (msg->type == Release && conn->status != ConnNormal) {
//
conn->status = ConnNormal;
//
transUnrefSrvHandle(conn);
//
reallocConnRefHandle(conn);
//
destroySmsg(msg);
//
transQueueClear(&conn->srvMsgs);
//
return;
//
}
destroySmsg
(
msg
);
// send second data, just use for push
if
(
!
transQueueEmpty
(
&
conn
->
srvMsgs
))
{
...
...
@@ -425,8 +425,15 @@ static void uvPrepareSendData(SSrvMsg* smsg, uv_buf_t* wb) {
if
(
pConn
->
status
==
ConnNormal
)
{
pHead
->
msgType
=
pConn
->
inType
+
1
;
}
else
{
pHead
->
msgType
=
smsg
->
type
==
Release
?
0
:
pMsg
->
msgType
;
if
(
smsg
->
type
==
Release
)
{
pHead
->
msgType
=
0
;
pConn
->
status
=
ConnNormal
;
transUnrefSrvHandle
(
pConn
);
}
else
{
pHead
->
msgType
=
pMsg
->
msgType
;
}
}
pHead
->
release
=
smsg
->
type
==
Release
?
1
:
0
;
pHead
->
code
=
htonl
(
pMsg
->
code
);
...
...
@@ -977,8 +984,8 @@ void uvHandleQuit(SSrvMsg* msg, SWorkThrdObj* thrd) {
}
void
uvHandleRelease
(
SSrvMsg
*
msg
,
SWorkThrdObj
*
thrd
)
{
SSrvConn
*
conn
=
msg
->
pConn
;
// reallocConnRefHandle(conn);
if
(
conn
->
status
==
ConnAcquire
)
{
reallocConnRefHandle
(
conn
);
if
(
!
transQueuePush
(
&
conn
->
srvMsgs
,
msg
))
{
return
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录