Przeglądaj źródła

Merge branch 'bugfix/freemodbus_fix_event_processing_after_destroy_backport40' into 'release/v4.0'

freemodbus: fix event processing failure after destroy (backport v4.0)

See merge request espressif/esp-idf!9323
Jiang Jiang Jian 4 lat temu
rodzic
commit
ce99b662c2
1 zmienionych plików z 6 dodań i 1 usunięć
  1. 6 1
      components/freemodbus/port/portevent_m.c

+ 6 - 1
components/freemodbus/port/portevent_m.c

@@ -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;
 }