docs: def do_close(self, reason):
          """Called when channel_close() is received"""
          if self.closed:
              return
          self.closed = True
          self.reason = reason
          self.incoming.close()
          self.responses.close()
          if not self._closing:
              self.client.channel_failed(self, Failure(reason))