code: protected boolean sendLeaveReqToCoord(final Address coord) {
          if(coord == null) {
              log.warn("%s: cannot send LEAVE request to null coord", gms.getLocalAddress());
              return false;
          }
          Promise<Address> leave_promise=gms.getLeavePromise();
          gms.setLeaving(true);
          log.trace("%s: sending LEAVE request to %s", gms.local_addr, coord);
          long start=System.currentTimeMillis();
          sendLeaveMessage(coord, gms.local_addr);
          Address sender=leave_promise.getResult(gms.leave_timeout);
          if(!Objects.equals(coord, sender))
              return false;
  
          long time=System.currentTimeMillis()-start;
          if(sender != null)
              log.trace("%s: got LEAVE response from %s in %d ms", gms.local_addr, coord, time);
          else
              log.trace("%s: timed out waiting for LEAVE response from %s (after %d ms)", gms.local_addr, coord, time);
          return true;
      }
docs: Sends a leave request to coord and blocks until a leave response has been received,
  or the leave timeout has elapsed