fix: mqtt recv cycle feed watchdog when cycle interval is 0

Send cycle and recv cycle share one mutex,
For increasing mqtt thoughtput, set receive cycle to 0,
mqtt recv cycle feed watchdog when cycle interval=0
This commit is contained in:
Chen Wu
2019-01-08 13:19:40 +08:00
parent bf27e5990f
commit d787a26f41

View File

@ -18,6 +18,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "esp_log.h" #include "esp_log.h"
#include "esp_task_wdt.h"
#include "MQTTClient.h" #include "MQTTClient.h"
static const char *TAG = "mc"; static const char *TAG = "mc";
@ -438,6 +439,10 @@ void MQTTRun(void *parm)
while (1) { while (1) {
TimerCountdownMS(&timer, CONFIG_MQTT_RECV_CYCLE); /* Don't wait too long if no traffic is incoming */ TimerCountdownMS(&timer, CONFIG_MQTT_RECV_CYCLE); /* Don't wait too long if no traffic is incoming */
#if CONFIG_MQTT_RECV_CYCLE == 0 /* The smaller cycle, the greater throughput */
esp_task_wdt_reset();
#endif
#if defined(MQTT_TASK) #if defined(MQTT_TASK)
MutexLock(&c->mutex); MutexLock(&c->mutex);
#endif #endif