Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
2762bf28
T
TDengine
项目概览
taosdata
/
TDengine
接近 2 年 前同步成功
通知
1192
Star
22018
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看板
未验证
提交
2762bf28
编写于
4月 07, 2023
作者:
H
Haojun Liao
提交者:
GitHub
4月 07, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #20791 from taosdata/origin/2.6
avoid race condition
上级
246dde60
e48a744a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
3 addition
and
1 deletion
+3
-1
src/rpc/src/rpcTcp.c
src/rpc/src/rpcTcp.c
+3
-1
未找到文件。
src/rpc/src/rpcTcp.c
浏览文件 @
2762bf28
...
@@ -15,6 +15,7 @@
...
@@ -15,6 +15,7 @@
// clang-format off
// clang-format off
#include <pthread.h>
#include "os.h"
#include "os.h"
#include "tsocket.h"
#include "tsocket.h"
#include "tutil.h"
#include "tutil.h"
...
@@ -644,6 +645,7 @@ static SFdObj *taosMallocFdObj(SThreadObj *pThreadObj, SOCKET fd) {
...
@@ -644,6 +645,7 @@ static SFdObj *taosMallocFdObj(SThreadObj *pThreadObj, SOCKET fd) {
if
(
pFdObj
==
NULL
)
{
if
(
pFdObj
==
NULL
)
{
return
NULL
;
return
NULL
;
}
}
pthread_mutex_lock
(
&
(
pThreadObj
->
mutex
));
pFdObj
->
closedByApp
=
0
;
pFdObj
->
closedByApp
=
0
;
pFdObj
->
fd
=
fd
;
pFdObj
->
fd
=
fd
;
...
@@ -654,12 +656,12 @@ static SFdObj *taosMallocFdObj(SThreadObj *pThreadObj, SOCKET fd) {
...
@@ -654,12 +656,12 @@ static SFdObj *taosMallocFdObj(SThreadObj *pThreadObj, SOCKET fd) {
event
.
data
.
ptr
=
pFdObj
;
event
.
data
.
ptr
=
pFdObj
;
if
(
epoll_ctl
(
pThreadObj
->
pollFd
,
EPOLL_CTL_ADD
,
fd
,
&
event
)
<
0
)
{
if
(
epoll_ctl
(
pThreadObj
->
pollFd
,
EPOLL_CTL_ADD
,
fd
,
&
event
)
<
0
)
{
tfree
(
pFdObj
);
tfree
(
pFdObj
);
pthread_mutex_unlock
(
&
(
pThreadObj
->
mutex
));
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
terrno
=
TAOS_SYSTEM_ERROR
(
errno
);
return
NULL
;
return
NULL
;
}
}
// notify the data process, add into the FdObj list
// notify the data process, add into the FdObj list
pthread_mutex_lock
(
&
(
pThreadObj
->
mutex
));
pFdObj
->
next
=
pThreadObj
->
pHead
;
pFdObj
->
next
=
pThreadObj
->
pHead
;
if
(
pThreadObj
->
pHead
)
(
pThreadObj
->
pHead
)
->
prev
=
pFdObj
;
if
(
pThreadObj
->
pHead
)
(
pThreadObj
->
pHead
)
->
prev
=
pFdObj
;
pThreadObj
->
pHead
=
pFdObj
;
pThreadObj
->
pHead
=
pFdObj
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录