code: def _process_queue(self) -> None:
      while True:
          started = 0
          while self._free_list and self._requests:
              started += 1
              curl = self._free_list.pop()
              (
                  request,
                  callback,
                  queue_start_time,
              ) = self._requests.popleft()
              # TODO: Don't smuggle extra data on an attribute of the Curl object.
              curl.info = {  # type: ignore
                  "headers": httputil.HTTPHeaders(),
                  "buffer": BytesIO(),
                  "request": request,
                  "callback": callback,
                  "queue_start_time": queue_start_time,
                  "curl_start_time": time.time(),
                  "curl_start_ioloop_time": self.io_loop.current().time(),  # type: ignore
              }
              try:
                  self._curl_setup_request(
                      curl,
                      request,
                      curl.info["buffer"],  # type: ignore
                      curl.info["headers"],  # type: ignore
                  )
              except Exception as e:
                  # If there was an error in setup, pass it on
                  # to the callback. Note that allowing the
                  # error to escape here will appear to work
                  # most of the time since we are still in the
                  # caller's original stack frame, but when
                  # _process_queue() is called from
                  # _finish_pending_requests the exceptions have
                  # nowhere to go.
                  self._free_list.append(curl)
                  callback(
                      HTTPResponse(request=request, code=599, error=e)
                  )
              else:
                  self._multi.add_handle(curl)
  
          if not started:
              break
  
imports: import collections
  import functools
  import logging
  import pycurl
  import threading
  import time
  from io import BytesIO
  from tornado import httputil
  from tornado import ioloop
  from tornado.escape import utf8, native_str
  from tornado.httpclient import HTTPRequest, HTTPResponse, HTTPError, AsyncHTTPClient, main
  from tornado.log import app_log
  from typing import Dict, Any, Callable, Union, Optional
  import typing
label_desc: Use image node_id 10 for calling the CurlAsyncHTTPClient obj's underlying member method code with example usage: obj._process_queue() without return types