private long tryDecReaderOverflow(long s){
  if ((s & ABITS) == RFULL) {
    if (U.compareAndSwapLong(this,STATE,s,s | RBITS)) {
      int r;
      long next;
      if ((r=readerOverflow) > 0) {
        readerOverflow=r - 1;
        next=s;
      }
 else       next=s - RUNIT;
      U.putLongVolatile(this,STATE,next);
      return next;
    }
  }
 else   if ((nextSecondarySeed() & OVERFLOW_YIELD_RATE) == 0)   Thread.yield();
  return 0L;
}

private long tryDecReaderOverflow ( long s ) { if ( ( s & ABITS ) == RFULL ) { if ( U . compareAndSwapLong ( this , STATE , s , s | RBITS ) ) { int r ; long next ; if ( ( r = readerOverflow ) > 0 ) { readerOverflow = r - 1 ; next = s ; } else next = s - RUNIT ; U . putLongVolatile ( this , STATE , next ) ; return next ; } } else if ( ( nextSecondarySeed ( ) & OVERFLOW_YIELD_RATE ) == 0 ) Thread . yield ( ) ; return 0L ; }
tries to decrement readeroverflow .
