code: public final void unlockFromRead(L locker) {
          adjustReadLockCount(locker, -1);
  
          int readLocks;
          while ((readLocks = decrementReadLocks(mState)) < 0) {}
  
          if (readLocks == 0) {
              Node h = mRWHead;
              if (h != null && h.mWaitStatus != 0) {
                  unparkReadWriteSuccessor(h);
              }
          }
      }
docs: Release a previously acquired read lock.