diff --git a/cpp/core/internal/base_pcp_handler_test.cc b/cpp/core/internal/base_pcp_handler_test.cc index 1d60f473..b6cbbb93 100644 --- a/cpp/core/internal/base_pcp_handler_test.cc +++ b/cpp/core/internal/base_pcp_handler_test.cc @@ -265,6 +265,8 @@ class BasePcpHandlerTest .allowed = allowed, .auto_upgrade_bandwidth = true, .enforce_topology_constraints = true, + .keep_alive_interval_millis = 5000, + .keep_alive_timeout_millis = 3000, }; EXPECT_CALL(*pcp_handler, StartDiscoveryImpl(client, service_id, _)) .WillOnce(Return(MockPcpHandler::StartOperationResult{ diff --git a/cpp/core/internal/endpoint_manager_test.cc b/cpp/core/internal/endpoint_manager_test.cc index 137a4954..cfa25b50 100644 --- a/cpp/core/internal/endpoint_manager_test.cc +++ b/cpp/core/internal/endpoint_manager_test.cc @@ -113,7 +113,10 @@ class EndpointManagerTest : public ::testing::Test { } ClientProxy client_; - ConnectionOptions options_; + ConnectionOptions options_{ + .keep_alive_interval_millis = 5000, + .keep_alive_timeout_millis = 30000, + }; std::vector> processors_; EndpointChannelManager ecm_; EndpointManager em_{&ecm_}; diff --git a/cpp/platform/base/medium_environment.cc b/cpp/platform/base/medium_environment.cc index 870eeffe..0e78e637 100644 --- a/cpp/platform/base/medium_environment.cc +++ b/cpp/platform/base/medium_environment.cc @@ -95,8 +95,10 @@ void MediumEnvironment::OnBluetoothAdapterChangedState( api::BluetoothAdapter& adapter, api::BluetoothDevice& adapter_device, std::string name, bool enabled, api::BluetoothAdapter::ScanMode mode) { if (!enabled_) return; + CountDownLatch latch(1); RunOnMediumEnvironmentThread([this, &adapter, &adapter_device, - name = std::move(name), enabled, mode]() { + name = std::move(name), enabled, mode, + &latch]() { NEARBY_LOG(INFO, "[adapter=%p, device=%p] update: name=%s, enabled=%d, mode=%d", &adapter, &adapter_device, name.c_str(), enabled, mode); @@ -112,8 +114,14 @@ void MediumEnvironment::OnBluetoothAdapterChangedState( // pointer. Pointer must remain valid for the duration of a Core session // (since it is owned by the correspoinding Medium, and mediums lifetime // matches Core lifetime). - bluetooth_adapters_.emplace(&adapter, &adapter_device); + if (enabled) { + bluetooth_adapters_.emplace(&adapter, &adapter_device); + } else { + bluetooth_adapters_.erase(&adapter); + } + latch.CountDown(); }); + latch.Await(); } void MediumEnvironment::OnBluetoothDeviceStateChanged(