docs: boolean setReplica( 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();
        if( old == -1 ) return false; // Write-locked; no new replications.  Read fails to read *this* value
        assert old >= 0;              // Not negative
        if( RW_CAS(old,old+1,"rlock+") ) break;
      }
      // Narrow non-race here.  Here is a time window where the rwlock count went
      // up, but the replica list does not account for the new replica.  However,
      // the rwlock cannot go down until an ACKACK is received, and the ACK
      // (hence ACKACK) doesn't go out until after this function returns.
      _replicas.add(h2o._unique_idx);
      // Both rwlock taken, and replica count is up now.
      return true;
    }