docs: @Override
      public void closeConnection() {
          checkState(!lock.isHeldByCurrentThread());
          try {
              channel.close();
          } catch (IOException e) {
              throw new RuntimeException(e);
          }
          connectionClosed();
      }