docstr: Make sure that futures are removed from the event list when they resolve
  
  Avoids delaying cleanup until the next send/recv event,
  which may never come.
docstr_tok: ["Make","sure","that","futures","are","removed","from","the","event","list","when","they","resolve","Avoids","delaying","cleanup","until","the","next","send\/recv","event",",","which","may","never","come","."]
code: def _remove_finished_future(future, event_list):
      """Make sure that futures are removed from the event list when they resolve
  
      Avoids delaying cleanup until the next send/recv event,
      which may never come.
      """
      for f_idx, (f, kind, kwargs, _) in enumerate(event_list):
          if f is future:
              break
      else:
          return
  
      # "future" instance is shared between sockets, but each socket has its own event list.
      event_list.remove(event_list[f_idx])
  
imports: from collections import namedtuple, deque
  from itertools import chain
  from zmq import EVENTS, POLLOUT, POLLIN
  import zmq
label_desc: Use image node_id 13 for calling the _AsyncSocket obj's underlying member method code with example usage: obj._remove_finished_future(future, event_list) without return types