Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4b10393c
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看板
提交
4b10393c
编写于
8月 18, 2023
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(stream): fix memory leak and do some internal refactor.
上级
cbd24bb2
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
18 addition
and
14 deletion
+18
-14
include/libs/stream/tstream.h
include/libs/stream/tstream.h
+1
-1
source/libs/stream/src/streamQueue.c
source/libs/stream/src/streamQueue.c
+10
-11
source/libs/stream/src/streamTask.c
source/libs/stream/src/streamTask.c
+7
-2
未找到文件。
include/libs/stream/tstream.h
浏览文件 @
4b10393c
...
@@ -189,7 +189,7 @@ int32_t streamInit();
...
@@ -189,7 +189,7 @@ int32_t streamInit();
void
streamCleanUp
();
void
streamCleanUp
();
SStreamQueue
*
streamQueueOpen
(
int64_t
cap
);
SStreamQueue
*
streamQueueOpen
(
int64_t
cap
);
void
streamQueueClose
(
SStreamQueue
*
queue
);
void
streamQueueClose
(
SStreamQueue
*
pQueue
,
int32_t
taskId
);
static
FORCE_INLINE
void
streamQueueProcessSuccess
(
SStreamQueue
*
queue
)
{
static
FORCE_INLINE
void
streamQueueProcessSuccess
(
SStreamQueue
*
queue
)
{
ASSERT
(
atomic_load_8
(
&
queue
->
status
)
==
STREAM_QUEUE__PROCESSING
);
ASSERT
(
atomic_load_8
(
&
queue
->
status
)
==
STREAM_QUEUE__PROCESSING
);
...
...
source/libs/stream/src/streamQueue.c
浏览文件 @
4b10393c
...
@@ -35,18 +35,17 @@ FAIL:
...
@@ -35,18 +35,17 @@ FAIL:
return
NULL
;
return
NULL
;
}
}
void
streamQueueClose
(
SStreamQueue
*
queue
)
{
void
streamQueueClose
(
SStreamQueue
*
pQueue
,
int32_t
taskId
)
{
while
(
1
)
{
qDebug
(
"s-task:0x%x free the queue:%p, items in queue:%d"
,
taskId
,
pQueue
->
queue
,
taosQueueItemSize
(
pQueue
->
queue
));
void
*
qItem
=
streamQueueNextItem
(
queue
);
if
(
qItem
)
{
void
*
qItem
=
NULL
;
streamFreeQitem
(
qItem
);
while
((
qItem
=
streamQueueNextItem
(
pQueue
))
!=
NULL
)
{
}
else
{
streamFreeQitem
(
qItem
);
break
;
}
}
}
taosFreeQall
(
queue
->
qall
);
taosCloseQueue
(
queue
->
queue
);
taosFreeQall
(
pQueue
->
qall
);
taosMemoryFree
(
queue
);
taosCloseQueue
(
pQueue
->
queue
);
taosMemoryFree
(
pQueue
);
}
}
#if 0
#if 0
...
...
source/libs/stream/src/streamTask.c
浏览文件 @
4b10393c
...
@@ -220,11 +220,11 @@ void tFreeStreamTask(SStreamTask* pTask) {
...
@@ -220,11 +220,11 @@ void tFreeStreamTask(SStreamTask* pTask) {
int32_t
status
=
atomic_load_8
((
int8_t
*
)
&
(
pTask
->
status
.
taskStatus
));
int32_t
status
=
atomic_load_8
((
int8_t
*
)
&
(
pTask
->
status
.
taskStatus
));
if
(
pTask
->
inputQueue
)
{
if
(
pTask
->
inputQueue
)
{
streamQueueClose
(
pTask
->
inputQueue
);
streamQueueClose
(
pTask
->
inputQueue
,
pTask
->
id
.
taskId
);
}
}
if
(
pTask
->
outputInfo
.
queue
)
{
if
(
pTask
->
outputInfo
.
queue
)
{
streamQueueClose
(
pTask
->
outputInfo
.
queue
);
streamQueueClose
(
pTask
->
outputInfo
.
queue
,
pTask
->
id
.
taskId
);
}
}
if
(
pTask
->
exec
.
qmsg
)
{
if
(
pTask
->
exec
.
qmsg
)
{
...
@@ -255,6 +255,11 @@ void tFreeStreamTask(SStreamTask* pTask) {
...
@@ -255,6 +255,11 @@ void tFreeStreamTask(SStreamTask* pTask) {
streamStateClose
(
pTask
->
pState
,
status
==
TASK_STATUS__DROPPING
);
streamStateClose
(
pTask
->
pState
,
status
==
TASK_STATUS__DROPPING
);
}
}
if
(
pTask
->
msgInfo
.
pData
!=
NULL
)
{
destroyStreamDataBlock
(
pTask
->
msgInfo
.
pData
);
pTask
->
msgInfo
.
pData
=
NULL
;
}
if
(
pTask
->
id
.
idStr
!=
NULL
)
{
if
(
pTask
->
id
.
idStr
!=
NULL
)
{
taosMemoryFree
((
void
*
)
pTask
->
id
.
idStr
);
taosMemoryFree
((
void
*
)
pTask
->
id
.
idStr
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录