Fix TSAN errors.

PiperOrigin-RevId: 627186253
This commit is contained in:
Francis Tsui
2024-04-22 16:12:55 -07:00
committed by Copybara-Service
parent ef924e5003
commit f1631fafe1
2 changed files with 8 additions and 3 deletions
+6 -2
View File
@@ -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<void()> listener) {
NL_DCHECK(!closed_);
absl::MutexLock lock(&disconnect_mutex_);
disconnect_listener_ = std::move(listener);
}
+2 -1
View File
@@ -60,7 +60,8 @@ class FakeNearbyConnection : public NearbyConnection {
std::queue<std::vector<uint8_t>> read_data_ ABSL_GUARDED_BY(read_mutex_);
absl::Mutex write_mutex_;
std::queue<std::vector<uint8_t>> write_data_ ABSL_GUARDED_BY(write_mutex_);
std::function<void()> disconnect_listener_;
absl::Mutex disconnect_mutex_;
std::function<void()> disconnect_listener_ ABSL_GUARDED_BY(disconnect_mutex_);
};
} // namespace sharing