Index: src/core/SkSharedMutex.cpp |
diff --git a/src/core/SkSharedMutex.cpp b/src/core/SkSharedMutex.cpp |
index 4cf63120676e658f43b1b354c22d27b08eb7d549..05e434c35b8f259b7e645e5b4119ec2d2b8d1f58 100644 |
--- a/src/core/SkSharedMutex.cpp |
+++ b/src/core/SkSharedMutex.cpp |
@@ -184,7 +184,7 @@ void SkSharedMutex::releaseShared() { |
ANNOTATE_RWLOCK_RELEASED(this, 0); |
// Decrement the shared count. |
- int32_t oldQueueCounts = fQueueCounts.fetch_add(~0U << kSharedOffset, |
+ int32_t oldQueueCounts = fQueueCounts.fetch_sub(1 << kSharedOffset, |
sk_memory_order_release); |
// If shared count is going to zero (because the old count == 1) and there are exclusive |