From c7f6161b4cb598dc457d3f2894dfe9181cfefb2f Mon Sep 17 00:00:00 2001 From: Ian Craggs Date: Wed, 13 May 2020 18:52:15 +0100 Subject: [PATCH] Synchronize assign msgid on mqttcommand mutex #880 --- src/MQTTAsync.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/MQTTAsync.c b/src/MQTTAsync.c index a67fbe97..cc6ebdc3 100644 --- a/src/MQTTAsync.c +++ b/src/MQTTAsync.c @@ -3470,6 +3470,7 @@ static int MQTTAsync_assignMsgId(MQTTAsyncs* m) start_msgid = m->c->msgID; msgid = start_msgid; + MQTTAsync_lock_mutex(mqttcommand_mutex); msgid = (msgid == MAX_MSG_ID) ? 1 : msgid + 1; while (ListFindItem(commands, &msgid, cmdMessageIDCompare) || ListFindItem(m->c->outboundMsgs, &msgid, messageIDCompare) || @@ -3482,6 +3483,7 @@ static int MQTTAsync_assignMsgId(MQTTAsyncs* m) break; } } + MQTTAsync_unlock_mutex(mqttcommand_mutex); if (msgid != 0) m->c->msgID = msgid; if (locked)