freemodbus: fix event processing failure after destroy

Closes https://github.com/espressif/esp-idf/issues/5275
customer/11kv_v4.0_xiaomi
aleks 2020-05-13 15:59:36 +02:00
rodzic 763aa66036
commit 940e108c4b
1 zmienionych plików z 6 dodań i 1 usunięć

Wyświetl plik

@ -274,7 +274,12 @@ eMBMasterReqErrCode eMBMasterWaitRequestFinish( void ) {
}
} else {
ESP_LOGE(MB_PORT_TAG,"%s: Incorrect event or timeout xRecvedEvent = 0x%x", __func__, uxBits);
assert(0);
// https://github.com/espressif/esp-idf/issues/5275
// if a no event is received, that means vMBMasterPortEventClose()
// has been closed, so event group has been deleted by FreeRTOS, which
// triggers the send of 0 value to the event group to unlock this task
// waiting on it. For this patch, handles it as a time out without assert.
eErrStatus = MB_MRE_TIMEDOUT;
}
return eErrStatus;
}