code: def close(self, linger=None):
      if not self.closed:
          for event in list(
              chain(self._recv_futures, self._send_futures)
          ):
              if not event.future.done():
                  try:
                      event.future.cancel()
                  except RuntimeError:
                      # RuntimeError may be called during teardown
                      pass
          self._clear_io_state()
      super(_AsyncSocket, self).close(linger=linger)
  
imports: from collections import namedtuple, deque
  from itertools import chain
  from zmq import EVENTS, POLLOUT, POLLIN
  import zmq
label_desc: Use image node_id 3 for calling the _AsyncSocket obj's underlying member method code with example usage: obj.close(linger) without return types