Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
Eclipse Foundation
Eclipse Paho C Client Library for the MQTT Protocol
提交
97989132
E
Eclipse Paho C Client Library for the MQTT Protocol
项目概览
镜像
/
Eclipse Foundation
/
Eclipse Paho C Client Library for the MQTT Protocol
10 个月 前同步成功
通知
251
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
Eclipse Paho C Client Library for the MQTT Protocol
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
97989132
编写于
4月 04, 2022
作者:
I
Ian Craggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Protect running variable #1214
上级
29ed338a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
5 deletion
+23
-5
src/MQTTClient.c
src/MQTTClient.c
+23
-5
未找到文件。
src/MQTTClient.c
浏览文件 @
97989132
...
@@ -800,10 +800,10 @@ static thread_return_type WINAPI MQTTClient_run(void* n)
...
@@ -800,10 +800,10 @@ static thread_return_type WINAPI MQTTClient_run(void* n)
long
timeout
=
10L
;
/* first time in we have a small timeout. Gets things started more quickly */
long
timeout
=
10L
;
/* first time in we have a small timeout. Gets things started more quickly */
FUNC_ENTRY
;
FUNC_ENTRY
;
running
=
1
;
run_id
=
Thread_getid
();
Thread_lock_mutex
(
mqttclient_mutex
);
Thread_lock_mutex
(
mqttclient_mutex
);
run_id
=
Thread_getid
();
running
=
1
;
while
(
!
tostop
)
while
(
!
tostop
)
{
{
int
rc
=
SOCKET_ERROR
;
int
rc
=
SOCKET_ERROR
;
...
@@ -1183,13 +1183,26 @@ static MQTTResponse MQTTClient_connectURIVersion(MQTTClient handle, MQTTClient_c
...
@@ -1183,13 +1183,26 @@ static MQTTResponse MQTTClient_connectURIVersion(MQTTClient handle, MQTTClient_c
resp
.
reasonCode
=
SOCKET_ERROR
;
resp
.
reasonCode
=
SOCKET_ERROR
;
if
(
m
->
ma
&&
!
running
)
if
(
m
->
ma
&&
!
running
)
{
{
int
count
=
0
;
Thread_start
(
MQTTClient_run
,
handle
);
Thread_start
(
MQTTClient_run
,
handle
);
if
(
MQTTTime_elapsed
(
start
)
>=
millisecsTimeout
)
if
(
MQTTTime_elapsed
(
start
)
>=
millisecsTimeout
)
{
{
rc
=
SOCKET_ERROR
;
rc
=
SOCKET_ERROR
;
goto
exit
;
goto
exit
;
}
}
MQTTTime_sleep
(
100L
);
while
(
!
running
&&
++
count
<
5
)
{
Thread_unlock_mutex
(
mqttclient_mutex
);
MQTTTime_sleep
(
100L
);
Thread_lock_mutex
(
mqttclient_mutex
);
}
if
(
!
running
)
{
rc
=
SOCKET_ERROR
;
goto
exit
;
}
}
}
Log
(
TRACE_MIN
,
-
1
,
"Connecting to serverURI %s with MQTT version %d"
,
serverURI
,
MQTTVersion
);
Log
(
TRACE_MIN
,
-
1
,
"Connecting to serverURI %s with MQTT version %d"
,
serverURI
,
MQTTVersion
);
...
@@ -2585,6 +2598,7 @@ static MQTTPacket* MQTTClient_waitfor(MQTTClient handle, int packet_type, int* r
...
@@ -2585,6 +2598,7 @@ static MQTTPacket* MQTTClient_waitfor(MQTTClient handle, int packet_type, int* r
MQTTPacket
*
pack
=
NULL
;
MQTTPacket
*
pack
=
NULL
;
MQTTClients
*
m
=
handle
;
MQTTClients
*
m
=
handle
;
START_TIME_TYPE
start
=
MQTTTime_start_clock
();
START_TIME_TYPE
start
=
MQTTTime_start_clock
();
int
is_running
=
0
;
/* local copy of running */
FUNC_ENTRY
;
FUNC_ENTRY
;
if
(((
MQTTClients
*
)
handle
)
==
NULL
||
timeout
<=
0L
)
if
(((
MQTTClients
*
)
handle
)
==
NULL
||
timeout
<=
0L
)
...
@@ -2593,7 +2607,11 @@ static MQTTPacket* MQTTClient_waitfor(MQTTClient handle, int packet_type, int* r
...
@@ -2593,7 +2607,11 @@ static MQTTPacket* MQTTClient_waitfor(MQTTClient handle, int packet_type, int* r
goto
exit
;
goto
exit
;
}
}
if
(
running
)
Thread_lock_mutex
(
mqttclient_mutex
);
is_running
=
running
;
Thread_unlock_mutex
(
mqttclient_mutex
);
if
(
is_running
)
{
{
if
(
packet_type
==
CONNECT
)
if
(
packet_type
==
CONNECT
)
{
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录