diff --git a/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp b/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp index 9722104e25..82945dc771 100644 --- a/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +++ b/esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp @@ -100,7 +100,12 @@ void ESP32BLETracker::loop() { found = true; if (client->state() == ClientState::DISCOVERED) { esp_ble_gap_stop_scanning(); - if (xSemaphoreTake(this->scan_end_lock_, 10L / portTICK_PERIOD_MS)) { +#ifdef USE_ARDUINO + constexpr TickType_t block_time = 10L / portTICK_PERIOD_MS; +#else + constexpr TickType_t block_time = 0L; // PR #3594 +#endif + if (xSemaphoreTake(this->scan_end_lock_, block_time)) { xSemaphoreGive(this->scan_end_lock_); } }