No need for pthreads in broker code.

This commit is contained in:
Roger A. Light 2014-05-18 22:44:02 +01:00
parent 175299c872
commit 5ca13a82f9

View File

@ -127,8 +127,6 @@ static int callback_mqtt(struct libwebsocket_context *context,
case LWS_CALLBACK_SERVER_WRITEABLE:
mosq = u->mosq;
pthread_mutex_lock(&mosq->current_out_packet_mutex);
pthread_mutex_lock(&mosq->out_packet_mutex);
if(mosq->out_packet && !mosq->current_out_packet){
mosq->current_out_packet = mosq->out_packet;
mosq->out_packet = mosq->out_packet->next;
@ -136,7 +134,6 @@ static int callback_mqtt(struct libwebsocket_context *context,
mosq->out_packet_last = NULL;
}
}
pthread_mutex_unlock(&mosq->out_packet_mutex);
while(mosq->current_out_packet){
packet = mosq->current_out_packet;
@ -158,12 +155,10 @@ static int callback_mqtt(struct libwebsocket_context *context,
packet->to_process -= count;
packet->pos += count;
if(packet->to_process > 0){
pthread_mutex_unlock(&mosq->current_out_packet_mutex);
break;
}
/* Free data and reset values */
pthread_mutex_lock(&mosq->out_packet_mutex);
mosq->current_out_packet = mosq->out_packet;
if(mosq->out_packet){
mosq->out_packet = mosq->out_packet->next;
@ -171,16 +166,12 @@ static int callback_mqtt(struct libwebsocket_context *context,
mosq->out_packet_last = NULL;
}
}
pthread_mutex_unlock(&mosq->out_packet_mutex);
_mosquitto_packet_cleanup(packet);
_mosquitto_free(packet);
pthread_mutex_lock(&mosq->msgtime_mutex);
mosq->last_msg_out = mosquitto_time();
pthread_mutex_unlock(&mosq->msgtime_mutex);
}
pthread_mutex_unlock(&mosq->current_out_packet_mutex);
break;
case LWS_CALLBACK_RECEIVE:
@ -253,9 +244,7 @@ static int callback_mqtt(struct libwebsocket_context *context,
/* Free data and reset values */
_mosquitto_packet_cleanup(&mosq->in_packet);
pthread_mutex_lock(&mosq->msgtime_mutex);
mosq->last_msg_in = mosquitto_time();
pthread_mutex_unlock(&mosq->msgtime_mutex);
if(rc){
if(db->config->connection_messages == true){