Finish off edge cases of race condition

This commit is contained in:
jacob.eva 2024-09-04 21:56:47 +01:00
parent cc4010fc95
commit 419a5c6ce3
No known key found for this signature in database
GPG Key ID: 0B92E083BBCCAA1E

View File

@ -1323,8 +1323,18 @@ void poll_buffers() {
void packet_poll() {
// If we have received a packet on an interface which needs to be processed
while (!fifo_isempty(&packet_rdy_interfaces)) {
#if MCU_VARIANT == MCU_ESP32
portENTER_CRITICAL(&update_lock);
#elif MCU_VARIANT == MCU_NRF52
portENTER_CRITICAL();
#endif
uint8_t packet_int = fifo_pop(&packet_rdy_interfaces);
selected_radio = interface_obj[packet_int];
#if MCU_VARIANT == MCU_ESP32
portEXIT_CRITICAL(&update_lock);
#elif MCU_VARIANT == MCU_NRF52
portEXIT_CRITICAL();
#endif
selected_radio->clearIRQStatus();
selected_radio->handleDio0Rise();
}