客戶端使用mosquitto的問題:
發現在linux中使用,不能在disconnect的回調函數中去調用mosquitto_reconnect或mosquitto_connect等函數,會造成pthread_mutex_lock(&mosq->current_out_packet_mutex)死鎖。
但是在QNX卻不會死鎖,可以正常reconnect。
void my_disconnect_callback(struct mosquitto *mosq, void *obj, int result)
{
run = false;
printf("on disconnect%d\n",result);
//在linux上這樣會死鎖,使用gdb可調試到是pthread_mutex_lock(&mosq->current_out_packet_mutex)死鎖
mosquitto_connect(mosqqq, HOST, PORT, 6);
}