From 0851ff104ad1b76d30650d81e686e6c10026d88b Mon Sep 17 00:00:00 2001 From: Tiejun Zhou Date: Fri, 8 Mar 2024 03:21:58 +0000 Subject: [PATCH] Reduce the delay of ASYNC connection --- src/MQTTAsyncUtils.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/MQTTAsyncUtils.c b/src/MQTTAsyncUtils.c index 6d9330403..a4da85737 100644 --- a/src/MQTTAsyncUtils.c +++ b/src/MQTTAsyncUtils.c @@ -1357,7 +1357,10 @@ static int MQTTAsync_processCommand(void) make sure we check for writeability as well as readability, otherwise we wait around longer than we need to in Socket_getReadySocket() */ if (rc == EINPROGRESS) + { Socket_addPendingWrite(command->client->c->net.socket); + rc = MQTTAsync_connecting(command->client); + } } } else if (command->command.type == SUBSCRIBE) @@ -2031,7 +2034,7 @@ thread_return_type WINAPI MQTTAsync_receiveThread(void* n) if (sock == 0) continue; - timeout = 1000L; + timeout = 10L; /* find client corresponding to socket */ if (ListFindItem(MQTTAsync_handles, &sock, clientSockCompare) == NULL) @@ -3017,8 +3020,6 @@ static MQTTPacket* MQTTAsync_cycle(SOCKET* sock, unsigned long timeout, int* rc) MQTTAsync_lock_mutex(mqttasync_mutex); should_stop = MQTTAsync_tostop; MQTTAsync_unlock_mutex(mqttasync_mutex); - if (!should_stop && *sock == 0 && (timeout > 0L)) - MQTTAsync_sleep(100L); #if defined(OPENSSL) } #endif @@ -3032,7 +3033,7 @@ static MQTTPacket* MQTTAsync_cycle(SOCKET* sock, unsigned long timeout, int* rc) { Log(TRACE_MINIMUM, -1, "m->c->connect_state = %d", m->c->connect_state); if (m->c->connect_state == TCP_IN_PROGRESS || m->c->connect_state == SSL_IN_PROGRESS || m->c->connect_state == WEBSOCKET_IN_PROGRESS) - *rc = MQTTAsync_connecting(m); + ; else pack = MQTTPacket_Factory(m->c->MQTTVersion, &m->c->net, rc); if (m->c->connect_state == WAIT_FOR_CONNACK && *rc == SOCKET_ERROR)