Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
5cc26ce9
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看板
提交
5cc26ce9
编写于
7月 23, 2021
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[td-225]fix bug found by regression test.
上级
339fe735
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
7 deletion
+19
-7
src/dnode/src/dnodeMain.c
src/dnode/src/dnodeMain.c
+3
-1
src/util/inc/tcache.h
src/util/inc/tcache.h
+5
-0
src/util/src/tcache.c
src/util/src/tcache.c
+11
-6
未找到文件。
src/dnode/src/dnodeMain.c
浏览文件 @
5cc26ce9
...
...
@@ -40,8 +40,9 @@
#include "dnodeShell.h"
#include "dnodeTelemetry.h"
#include "module.h"
#include "qScript.h"
#include "mnode.h"
#include "qScript.h"
#include "tcache.h"
#if !defined(_MODULE) || !defined(_TD_LINUX)
int32_t
moduleStart
()
{
return
0
;
}
...
...
@@ -207,6 +208,7 @@ void dnodeCleanUpSystem() {
dnodeCleanupComponents
();
taos_cleanup
();
taosCloseLog
();
taosStopCacheRefreshWorker
();
}
}
...
...
src/util/inc/tcache.h
浏览文件 @
5cc26ce9
...
...
@@ -178,6 +178,11 @@ void taosCacheCleanup(SCacheObj *pCacheObj);
*/
void
taosCacheRefresh
(
SCacheObj
*
pCacheObj
,
__cache_free_fn_t
fp
);
/**
* stop background refresh worker thread
*/
void
taosStopCacheRefreshWorker
();
#ifdef __cplusplus
}
#endif
...
...
src/util/src/tcache.c
浏览文件 @
5cc26ce9
...
...
@@ -70,6 +70,7 @@ static pthread_t cacheRefreshWorker = {0};
static
pthread_once_t
cacheThreadInit
=
PTHREAD_ONCE_INIT
;
static
pthread_mutex_t
guard
=
PTHREAD_MUTEX_INITIALIZER
;
static
SArray
*
pCacheArrayList
=
NULL
;
static
bool
stopRefreshWorker
=
false
;
static
void
doInitRefreshThread
(
void
)
{
pCacheArrayList
=
taosArrayInit
(
4
,
POINTER_BYTES
);
...
...
@@ -685,6 +686,9 @@ void* taosCacheTimedRefresh(void *handle) {
while
(
1
)
{
taosMsleep
(
SLEEP_DURATION
);
if
(
stopRefreshWorker
)
{
goto
_end
;
}
pthread_mutex_lock
(
&
guard
);
size_t
size
=
taosArrayGetSize
(
pCacheArrayList
);
...
...
@@ -708,13 +712,10 @@ void* taosCacheTimedRefresh(void *handle) {
size
=
taosArrayGetSize
(
pCacheArrayList
);
uDebug
(
"%s is destroying, remove it from refresh list, remain cache obj:%"
PRIzu
,
pCacheObj
->
name
,
size
);
pCacheObj
->
deleting
=
0
;
//reset the deleting flag to enable pCacheObj
does self destroy process
pCacheObj
->
deleting
=
0
;
//reset the deleting flag to enable pCacheObj
to continue releasing resources.
// all contained caches has been marked to be removed, destroy the scanner it self.
if
(
size
==
0
)
{
pthread_mutex_unlock
(
&
guard
);
goto
_end
;
}
pthread_mutex_unlock
(
&
guard
);
continue
;
}
pthread_mutex_unlock
(
&
guard
);
...
...
@@ -759,3 +760,7 @@ void taosCacheRefresh(SCacheObj *pCacheObj, __cache_free_fn_t fp) {
int64_t
now
=
taosGetTimestampMs
();
doCacheRefresh
(
pCacheObj
,
now
,
fp
);
}
void
taosStopCacheRefreshWorker
()
{
stopRefreshWorker
=
false
;
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录