void lowerActiveGetCount( H2ONode h2o ) {
    assert _key.home();    // Only the HOME node for a key tracks replicas
    assert h2o != H2O.SELF;// Do not track self as a replica
    while( true ) {        // Repeat, in case racing GETs are bumping the counter
      int old = _rwlock.get(); // Read the lock-word
      assert old > 0;      // Since lowering, must be at least 1
      assert old != -1;    // Not write-locked, because we are an active reader
      assert _replicas.contains(h2o._unique_idx); // Self-bit is set
      if( RW_CAS(old,old-1,"rlock-") ) {
        if( old-1 == 0 )   // GET count fell to zero?
          synchronized( this ) { notifyAll(); } // Notify any pending blocked PUTs
        return;            // Repeat until count is lowered
      }
    }
  }
void lowerActiveGetCount ( H2ONode h2o ) { assert _key . home ( ) ; assert h2o != H2O . SELF ; while ( true ) { int old = _rwlock . get ( ) ; assert old > 0 ; assert old != - 1 ; assert _replicas . contains ( h2o . _unique_idx ) ; if ( RW_CAS ( old , old - 1 , "rlock-" ) ) { if ( old - 1 == 0 ) synchronized ( this ) { notifyAll ( ) ; } return ; } } }
Atomically lower active GET count