From f1631fafe1059fdc2fb8666234cfd110b2682748 Mon Sep 17 00:00:00 2001 From: Francis Tsui Date: Mon, 22 Apr 2024 16:11:31 -0700 Subject: [PATCH] Fix TSAN errors. PiperOrigin-RevId: 627186253 --- sharing/fake_nearby_connection.cc | 8 ++++++-- sharing/fake_nearby_connection.h | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/sharing/fake_nearby_connection.cc b/sharing/fake_nearby_connection.cc index 67adc281..9800756a 100644 --- a/sharing/fake_nearby_connection.cc +++ b/sharing/fake_nearby_connection.cc @@ -50,8 +50,11 @@ void FakeNearbyConnection::Close() { NL_DCHECK(!closed_); closed_ = true; - if (disconnect_listener_) { - std::move(disconnect_listener_)(); + { + absl::MutexLock lock(&disconnect_mutex_); + if (disconnect_listener_) { + std::move(disconnect_listener_)(); + } } absl::MutexLock lock(&read_mutex_); @@ -66,6 +69,7 @@ void FakeNearbyConnection::Close() { void FakeNearbyConnection::SetDisconnectionListener( std::function listener) { NL_DCHECK(!closed_); + absl::MutexLock lock(&disconnect_mutex_); disconnect_listener_ = std::move(listener); } diff --git a/sharing/fake_nearby_connection.h b/sharing/fake_nearby_connection.h index aecbaa05..956d2523 100644 --- a/sharing/fake_nearby_connection.h +++ b/sharing/fake_nearby_connection.h @@ -60,7 +60,8 @@ class FakeNearbyConnection : public NearbyConnection { std::queue> read_data_ ABSL_GUARDED_BY(read_mutex_); absl::Mutex write_mutex_; std::queue> write_data_ ABSL_GUARDED_BY(write_mutex_); - std::function disconnect_listener_; + absl::Mutex disconnect_mutex_; + std::function disconnect_listener_ ABSL_GUARDED_BY(disconnect_mutex_); }; } // namespace sharing