diff --git a/connections/implementation/mediums/ble/discovered_peripheral_tracker_test.cc b/connections/implementation/mediums/ble/discovered_peripheral_tracker_test.cc index 52eed33e..f7462169 100644 --- a/connections/implementation/mediums/ble/discovered_peripheral_tracker_test.cc +++ b/connections/implementation/mediums/ble/discovered_peripheral_tracker_test.cc @@ -71,6 +71,11 @@ constexpr absl::string_view kDeviceToken = "\x04\x20"; constexpr absl::string_view kDeviceName = "device"; constexpr absl::Duration kDefaultGattFetchDelay = absl::Milliseconds(200); +// Delay to allow background threads to complete during teardown. +// This helps prevent use-after-free errors on resources like FakeClock +// used by background tasks (e.g., in PendingJobRegistry). +constexpr absl::Duration kTeardownDelay = absl::Milliseconds(400); + ByteArray CreateFastBleAdvertisement(const ByteArray& data, const ByteArray& device_token) { return ByteArray(BleAdvertisement( @@ -218,6 +223,9 @@ class DiscoveredPeripheralTrackerTest void TearDown() override { discovered_peripheral_tracker_.reset(); + + // Add a small delay to allow background threads to complete. + absl::SleepFor(kTeardownDelay); MediumEnvironment::Instance().Stop(); NearbyFlags::GetInstance().ResetOverridedValues(); } diff --git a/internal/platform/medium_environment.cc b/internal/platform/medium_environment.cc index 581ff972..0d120e97 100644 --- a/internal/platform/medium_environment.cc +++ b/internal/platform/medium_environment.cc @@ -24,7 +24,6 @@ #include "absl/container/flat_hash_set.h" #include "absl/status/status.h" -#include "absl/strings/escaping.h" #include "absl/strings/str_format.h" #include "absl/strings/string_view.h" #include "absl/time/time.h"