docs: public void viewChange(View view) {
          if(view == null || rsps == null || rsps.isEmpty())
              return;
  
          boolean changed=false;
          lock.lock();
          try {
              for(Map.Entry<Address,Rsp<T>> entry: rsps.entrySet()) {
                  Address mbr=entry.getKey();
                  // SiteAddresses are not checked as they might be in a different cluster
                  if(!(mbr instanceof SiteAddress) && !view.containsMember(mbr)) {
                      Rsp<T> rsp=entry.getValue();
                      if(rsp.setSuspected()) {
                          if(!(rsp.wasReceived() || rsp.wasUnreachable()))
                              num_received++;
                          changed=true;
                      }
                  }
              }
              if(changed && responsesComplete()) {
                  complete(this.rsps);
                  corrDone();
              }
          }
          finally {
              lock.unlock();
          }
      }