Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
b9e7eb9c
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
b9e7eb9c
编写于
7月 25, 2022
作者:
S
shenglian-zhou
提交者:
GitHub
7月 25, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #15399 from taosdata/szhou/fix/udf
feat: add delay to udf1 to simulate actual processing
上级
13476682
4caa6df1
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
20 addition
and
9 deletion
+20
-9
source/libs/function/src/tudf.c
source/libs/function/src/tudf.c
+7
-7
source/libs/function/test/udf1.c
source/libs/function/test/udf1.c
+13
-2
未找到文件。
source/libs/function/src/tudf.c
浏览文件 @
b9e7eb9c
...
@@ -877,7 +877,7 @@ void udfcUvHandleError(SClientUvConn *conn);
...
@@ -877,7 +877,7 @@ void udfcUvHandleError(SClientUvConn *conn);
void
onUdfcPipeRead
(
uv_stream_t
*
client
,
ssize_t
nread
,
const
uv_buf_t
*
buf
);
void
onUdfcPipeRead
(
uv_stream_t
*
client
,
ssize_t
nread
,
const
uv_buf_t
*
buf
);
void
onUdfcPipeWrite
(
uv_write_t
*
write
,
int
status
);
void
onUdfcPipeWrite
(
uv_write_t
*
write
,
int
status
);
void
onUdfcPipeConnect
(
uv_connect_t
*
connect
,
int
status
);
void
onUdfcPipeConnect
(
uv_connect_t
*
connect
,
int
status
);
int32_t
udfc
CreateUvTask
(
SClientUdfTask
*
task
,
int8_t
uvTaskType
,
SClientUvTaskNode
**
pU
vTask
);
int32_t
udfc
InitializeUvTask
(
SClientUdfTask
*
task
,
int8_t
uvTaskType
,
SClientUvTaskNode
*
u
vTask
);
int32_t
udfcQueueUvTask
(
SClientUvTaskNode
*
uvTask
);
int32_t
udfcQueueUvTask
(
SClientUvTaskNode
*
uvTask
);
int32_t
udfcStartUvTask
(
SClientUvTaskNode
*
uvTask
);
int32_t
udfcStartUvTask
(
SClientUvTaskNode
*
uvTask
);
void
udfcAsyncTaskCb
(
uv_async_t
*
async
);
void
udfcAsyncTaskCb
(
uv_async_t
*
async
);
...
@@ -1376,8 +1376,7 @@ void onUdfcPipeConnect(uv_connect_t *connect, int status) {
...
@@ -1376,8 +1376,7 @@ void onUdfcPipeConnect(uv_connect_t *connect, int status) {
uv_sem_post
(
&
uvTask
->
taskSem
);
uv_sem_post
(
&
uvTask
->
taskSem
);
}
}
int32_t
udfcCreateUvTask
(
SClientUdfTask
*
task
,
int8_t
uvTaskType
,
SClientUvTaskNode
**
pUvTask
)
{
int32_t
udfcInitializeUvTask
(
SClientUdfTask
*
task
,
int8_t
uvTaskType
,
SClientUvTaskNode
*
uvTask
)
{
SClientUvTaskNode
*
uvTask
=
taosMemoryCalloc
(
1
,
sizeof
(
SClientUvTaskNode
));
uvTask
->
type
=
uvTaskType
;
uvTask
->
type
=
uvTaskType
;
uvTask
->
udfc
=
task
->
session
->
udfc
;
uvTask
->
udfc
=
task
->
session
->
udfc
;
...
@@ -1412,7 +1411,6 @@ int32_t udfcCreateUvTask(SClientUdfTask *task, int8_t uvTaskType, SClientUvTaskN
...
@@ -1412,7 +1411,6 @@ int32_t udfcCreateUvTask(SClientUdfTask *task, int8_t uvTaskType, SClientUvTaskN
}
}
uv_sem_init
(
&
uvTask
->
taskSem
,
0
);
uv_sem_init
(
&
uvTask
->
taskSem
,
0
);
*
pUvTask
=
uvTask
;
return
0
;
return
0
;
}
}
...
@@ -1615,10 +1613,10 @@ int32_t udfcClose() {
...
@@ -1615,10 +1613,10 @@ int32_t udfcClose() {
}
}
int32_t
udfcRunUdfUvTask
(
SClientUdfTask
*
task
,
int8_t
uvTaskType
)
{
int32_t
udfcRunUdfUvTask
(
SClientUdfTask
*
task
,
int8_t
uvTaskType
)
{
SClientUvTaskNode
*
uvTask
=
NULL
;
SClientUvTaskNode
*
uvTask
=
taosMemoryCalloc
(
1
,
sizeof
(
SClientUvTaskNode
));
udfcCreateUvTask
(
task
,
uvTaskType
,
&
uvTask
);
fnDebug
(
"udfc client task: %p created uvTask: %p. pipe: %p"
,
task
,
uvTask
,
task
->
session
->
udfUvPipe
);
fnDebug
(
"udfc client task: %p created uvTask: %p. pipe: %p"
,
task
,
uvTask
,
task
->
session
->
udfUvPipe
);
udfcInitializeUvTask
(
task
,
uvTaskType
,
uvTask
);
udfcQueueUvTask
(
uvTask
);
udfcQueueUvTask
(
uvTask
);
udfcGetUdfTaskResultFromUvTask
(
task
,
uvTask
);
udfcGetUdfTaskResultFromUvTask
(
task
,
uvTask
);
if
(
uvTaskType
==
UV_TASK_CONNECT
)
{
if
(
uvTaskType
==
UV_TASK_CONNECT
)
{
...
@@ -1629,6 +1627,8 @@ int32_t udfcRunUdfUvTask(SClientUdfTask *task, int8_t uvTaskType) {
...
@@ -1629,6 +1627,8 @@ int32_t udfcRunUdfUvTask(SClientUdfTask *task, int8_t uvTaskType) {
taosMemoryFree
(
uvTask
->
reqBuf
.
base
);
taosMemoryFree
(
uvTask
->
reqBuf
.
base
);
uvTask
->
reqBuf
.
base
=
NULL
;
uvTask
->
reqBuf
.
base
=
NULL
;
taosMemoryFree
(
uvTask
);
taosMemoryFree
(
uvTask
);
fnDebug
(
"udfc freed uvTask: %p"
,
task
);
uvTask
=
NULL
;
uvTask
=
NULL
;
return
task
->
errCode
;
return
task
->
errCode
;
}
}
...
...
source/libs/function/test/udf1.c
浏览文件 @
b9e7eb9c
#include <string.h>
#include <string.h>
#include <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdio.h>
#ifdef LINUX
#include <unistd.h>
#endif
#ifdef WINDOWS
#include <windows.h>
#endif
#include "taosudf.h"
#include "taosudf.h"
...
@@ -35,6 +40,12 @@ DLL_EXPORT int32_t udf1(SUdfDataBlock* block, SUdfColumn *resultCol) {
...
@@ -35,6 +40,12 @@ DLL_EXPORT int32_t udf1(SUdfDataBlock* block, SUdfColumn *resultCol) {
udfColDataSet
(
resultCol
,
i
,
(
char
*
)
&
luckyNum
,
false
);
udfColDataSet
(
resultCol
,
i
,
(
char
*
)
&
luckyNum
,
false
);
}
}
}
}
//to simulate actual processing delay by udf
#ifdef LINUX
usleep
(
1
*
1000
);
// usleep takes sleep time in us (1 millionth of a second)
#endif
#ifdef WINDOWS
Sleep
(
1
);
#endif
return
0
;
return
0
;
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录