Commit 185281c7 authored by Ian Craggs's avatar Ian Craggs

Do we need to unlock when calling back?

parent 63563590
......@@ -722,16 +722,16 @@ void MQTTAsync_checkDisconnect(MQTTAsync handle, MQTTAsync_command* command)
if (command->details.dis.internal && m->cl && was_connected)
{
Log(TRACE_MIN, -1, "Calling connectionLost for client %s", m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(m->cl))(m->context, NULL);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
else if (!command->details.dis.internal && command->onSuccess)
{
Log(TRACE_MIN, -1, "Calling disconnect complete for client %s", m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(command->onSuccess))(command->context, NULL);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
}
FUNC_EXIT;
......@@ -1020,9 +1020,9 @@ void MQTTAsync_processCommand()
data.alt.pub.message.qos = command->command.details.pub.qos;
data.alt.pub.message.retained = command->command.details.pub.retained;
Log(TRACE_MIN, -1, "Calling publish success for client %s", command->client->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(command->command.onSuccess))(command->command.context, &data);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
}
else
......@@ -1085,9 +1085,9 @@ void MQTTAsync_processCommand()
{
Log(TRACE_MIN, -1, "Calling command failure for client %s", command->client->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(command->command.onFailure))(command->command.context, NULL);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
MQTTAsync_freeConnect(command->command);
MQTTAsync_freeCommand(command); /* free up the command if necessary */
......@@ -1151,9 +1151,9 @@ void MQTTAsync_checkTimeouts()
if (m->connect.onFailure)
{
Log(TRACE_MIN, -1, "Calling connect failure for client %s", m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(m->connect.onFailure))(m->connect.context, NULL);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
}
continue;
......@@ -1177,9 +1177,9 @@ void MQTTAsync_checkTimeouts()
{
Log(TRACE_MIN, -1, "Calling %s failure for client %s",
MQTTPacket_name(com->command.type), m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(com->command.onFailure))(com->command.context, NULL);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
timed_out_count++;
}
......@@ -1463,9 +1463,9 @@ thread_return_type WINAPI MQTTAsync_receiveThread(void* n)
if (m->connect.onSuccess)
{
Log(TRACE_MIN, -1, "Calling connect success for client %s", m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(m->connect.onSuccess))(m->connect.context, NULL);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
}
else
......@@ -1496,9 +1496,9 @@ thread_return_type WINAPI MQTTAsync_receiveThread(void* n)
data.code = rc;
data.message = "CONNACK return code";
Log(TRACE_MIN, -1, "Calling connect failure for client %s", m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(m->connect.onFailure))(m->connect.context, &data);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
}
}
......@@ -1536,9 +1536,9 @@ thread_return_type WINAPI MQTTAsync_receiveThread(void* n)
rc = MQTTProtocol_handleSubacks(pack, m->c->net.socket);
handleCalled = 1;
Log(TRACE_MIN, -1, "Calling subscribe success for client %s", m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(command->command.onSuccess))(command->command.context, &data);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
if (array)
free(array);
}
......@@ -1567,9 +1567,9 @@ thread_return_type WINAPI MQTTAsync_receiveThread(void* n)
rc = MQTTProtocol_handleUnsubacks(pack, m->c->net.socket);
handleCalled = 1;
Log(TRACE_MIN, -1, "Calling unsubscribe success for client %s", m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(command->command.onSuccess))(command->command.context, NULL);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
MQTTAsync_freeCommand(command);
break;
......@@ -1901,9 +1901,9 @@ int MQTTAsync_deliverMessage(MQTTAsyncs* m, char* topicName, int topicLen, MQTTA
Log(TRACE_MIN, -1, "Calling messageArrived for client %s, queue depth %d",
m->c->clientID, m->c->messageQueue->count);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
rc = (*(m->ma))(m->context, topicName, topicLen, mm);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
/* if 0 (false) is returned by the callback then it failed, so we don't remove the message from
* the queue, and it will be retried later. If 1 is returned then the message data may have been freed,
* so we must be careful how we use it.
......@@ -2524,9 +2524,9 @@ exit:
if (m->connect.onFailure)
{
Log(TRACE_MIN, -1, "Calling connect failure for client %s", m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(m->connect.onFailure))(m->connect.context, NULL);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
}
}
......@@ -2605,9 +2605,9 @@ MQTTPacket* MQTTAsync_cycle(int* sock, unsigned long timeout, int* rc)
if (m->connect.onFailure)
{
Log(TRACE_MIN, -1, "Calling connect failure for client %s", m->c->clientID);
Thread_unlock_mutex(mqttasync_mutex);
//Thread_unlock_mutex(mqttasync_mutex);
(*(m->connect.onFailure))(m->connect.context, NULL);
Thread_lock_mutex(mqttasync_mutex);
//Thread_lock_mutex(mqttasync_mutex);
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment