Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
71619190
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看板
提交
71619190
编写于
5月 14, 2022
作者:
S
slzhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: finish uv task when event loop start uv task failed
上级
4a316eae
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
1 deletion
+9
-1
source/libs/function/src/tudf.c
source/libs/function/src/tudf.c
+9
-1
未找到文件。
source/libs/function/src/tudf.c
浏览文件 @
71619190
...
...
@@ -1072,6 +1072,8 @@ int32_t udfcQueueUvTask(SClientUvTaskNode *uvTask) {
int32_t
udfcStartUvTask
(
SClientUvTaskNode
*
uvTask
)
{
fnTrace
(
"event loop start uv task. task: %d, %p"
,
uvTask
->
type
,
uvTask
);
int32_t
code
=
0
;
switch
(
uvTask
->
type
)
{
case
UV_TASK_CONNECT
:
{
uv_pipe_t
*
pipe
=
taosMemoryMalloc
(
sizeof
(
uv_pipe_t
));
...
...
@@ -1091,6 +1093,7 @@ int32_t udfcStartUvTask(SClientUvTaskNode *uvTask) {
uv_connect_t
*
connReq
=
taosMemoryMalloc
(
sizeof
(
uv_connect_t
));
connReq
->
data
=
uvTask
;
uv_pipe_connect
(
connReq
,
pipe
,
uvTask
->
udfc
->
udfdPipeName
,
onUdfcPipeConnect
);
code
=
0
;
break
;
}
case
UV_TASK_REQ_RSP
:
{
...
...
@@ -1101,12 +1104,14 @@ int32_t udfcStartUvTask(SClientUvTaskNode *uvTask) {
if
(
err
!=
0
)
{
fnError
(
"udfc event loop start req/rsp task uv_write failed. code: %s"
,
uv_strerror
(
err
));
}
code
=
err
;
break
;
}
case
UV_TASK_DISCONNECT
:
{
SClientUvConn
*
conn
=
uvTask
->
pipe
->
data
;
QUEUE_INSERT_TAIL
(
&
conn
->
taskQueue
,
&
uvTask
->
connTaskQueue
);
uv_close
((
uv_handle_t
*
)
uvTask
->
pipe
,
onUdfcPipeClose
);
code
=
0
;
break
;
}
default:
{
...
...
@@ -1115,7 +1120,7 @@ int32_t udfcStartUvTask(SClientUvTaskNode *uvTask) {
}
}
return
0
;
return
code
;
}
void
udfClientAsyncCb
(
uv_async_t
*
async
)
{
...
...
@@ -1133,6 +1138,9 @@ void udfClientAsyncCb(uv_async_t *async) {
int32_t
code
=
udfcStartUvTask
(
task
);
if
(
code
==
0
)
{
QUEUE_INSERT_TAIL
(
&
udfc
->
uvProcTaskQueue
,
&
task
->
procTaskQueue
);
}
else
{
task
->
errCode
=
code
;
uv_sem_post
(
&
task
->
taskSem
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录