code: @Override public boolean isReleasable() {
      int r = _rwlock.get();
      if( _key.home() ) {         // Called from lock_and_invalidate
        // Home-key blocking: wait for active-GET count to fall to zero, or blocking on deleted object
        return r <= 0;
      } else {                    // Called from start_put
        // Remote-key blocking: wait for active-PUT lock to hit -1
        assert r == 2 || r == -1; // Either waiting (2) or done (-1) but not started(1)
        return r == -1;           // done!
      }
    }
docs: Return true if blocking is unnecessary.
  Alas, used in TWO places and the blocking API forces them to share here.