Layer: Don't need atomic for transaction flags
Following queued transaction changes we don't need an atomic here
since setPosition etc all execute on the main thread.
Test: Existing tests pass. simpleperf
Bug: 186200583
Change-Id: I965d3883d30ce1eb3c452742535281f3e2719424
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 2bf5602..00defb3 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -847,11 +847,13 @@
}
uint32_t Layer::getTransactionFlags(uint32_t flags) {
- return mTransactionFlags.fetch_and(~flags) & flags;
+ auto ret = mTransactionFlags & flags;
+ mTransactionFlags &= ~flags;
+ return ret;
}
uint32_t Layer::setTransactionFlags(uint32_t flags) {
- return mTransactionFlags.fetch_or(flags);
+ return mTransactionFlags |= flags;
}
bool Layer::setPosition(float x, float y) {