From 9ea2c9fd8ec386e77eeffac303d134492928c9ac Mon Sep 17 00:00:00 2001 From: Guogang Li Date: Mon, 1 May 2023 19:10:53 -0700 Subject: [PATCH] Fixed the data race in ObserverList PiperOrigin-RevId: 528638464 --- internal/base/observer_list.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/base/observer_list.h b/internal/base/observer_list.h index a4d44a2f..d91333cb 100644 --- a/internal/base/observer_list.h +++ b/internal/base/observer_list.h @@ -28,6 +28,11 @@ class ObserverList { using const_iterator = typename absl::flat_hash_set::const_iterator; + ~ObserverList() ABSL_LOCKS_EXCLUDED(mutex_) { + MutexLock lock(&mutex_); + observers_.clear(); + } + void AddObserver(ObserverType* observer) ABSL_LOCKS_EXCLUDED(mutex_) { MutexLock lock(&mutex_); observers_.insert(observer);