Skip to content

Commit 81da2ab

Browse files
committed
Error fix from enabling Clang thread-safety checks.
Parent bug: b/353324127. Enabling `thread-safety-reference-return` to allow developers to utilize Clang thread safety guardrails (GUARDED_BY, REQUIRES, EXCLUDES). Error: frameworks/native/services/surfaceflinger/Scheduler/RefreshRateSelector.h:307:55: error: returning variable 'mDisplayModes' by reference requires holding mutex 'mLock' [-Werror,-Wthread-safety-reference-return] Fix: return by value, hold mutex from parent, or remove GUARDED_BY attribute. This fix removes the GUARDED_BY attribute in order to avoid changing functionality. If this is not desired, please respond with concerns or preferred fix. Change-Id: Ia3444fd193294e1478a9f830651eb8dabf2c73cd Bug: 354740314 Test: make
1 parent a42f727 commit 81da2ab

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

services/surfaceflinger/Scheduler/RefreshRateSelector.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,10 @@ class RefreshRateSelector {
304304
RefreshRateSelector(const RefreshRateSelector&) = delete;
305305
RefreshRateSelector& operator=(const RefreshRateSelector&) = delete;
306306

307-
const DisplayModes& displayModes() const { return mDisplayModes; }
307+
DisplayModes displayModes() const {
308+
std::lock_guard lock(mLock);
309+
return mDisplayModes;
310+
}
308311

309312
// Returns whether switching modes (refresh rate or resolution) is possible.
310313
// TODO(b/158780872): Consider HAL support, and skip frame rate detection if the modes only

0 commit comments

Comments
 (0)