diff --git a/sources/src/main/java/io/akarin/api/internal/utils/ReentrantSpinningLock.java b/sources/src/main/java/io/akarin/api/internal/utils/ReentrantSpinningLock.java index 9c00f4412..e05c9f792 100644 --- a/sources/src/main/java/io/akarin/api/internal/utils/ReentrantSpinningLock.java +++ b/sources/src/main/java/io/akarin/api/internal/utils/ReentrantSpinningLock.java @@ -31,7 +31,7 @@ public class ReentrantSpinningLock { public void unlock() { if (reentrantLocks == 0) { heldThreadId = 0; - if (readerThreads.getAndDecrement() == 1) { // Micro-optimization: this saves one subtract + if (readerThreads.get() == 0 || readerThreads.getAndDecrement() == 1) { // Micro-optimization: this saves one subtract writeLocked.set(false); } } else {