docs: def enqueue(self, future):
      """
      Enqueue a future to be processed by one of the threads in the pool.
      The future must be bound to a worker and not have been started yet.
      """
  
      future.enqueue()
      with self._lock:
        if self._shutdown:
          raise RuntimeError('ThreadPool has been shut down and can no '
            'longer accept futures.')
        self._queue.append(future)
        if len(self._running) == len(self._workers):
          self._new_worker()
        self._lock.notify_all()