code: def abort(self, exception=exc.ConnectError):
          
          log.warning("Aborting connection to %s:%s", self.host, self.port)
  
          def abort_pending(f):
              exc_info = sys.exc_info()
              # TODO
              log.debug('Abort pending: {}'.format(f))
              if False and any(exc_info):
                  f.set_exc_info(exc_info)
              else:
                  f.set_exception(exception(self.host, self.port))
  
          for pending in self.drain_all_pending():
              if pending.done() or pending.cancelled():
                  continue
              abort_pending(pending)
docs: Aborts a connection and puts all pending futures into an error state.
  
          If ``sys.exc_info()`` is set (i.e. this is being called in an exception
          handler) then pending futures will have that exc info set.  Otherwise
          the given ``exception`` parameter is used (defaults to
          ``ConnectError``).