code: def process_request(self, request, client_address):
          
          if request is None or client_address is None:
              # request was never initialized, i.e. due to overload
              return 
  
          t = threading.Thread(target = self.process_request_thread,
                               args = (request, client_address))
  
          t.daemon = False
  
          with self._thread_guard:
              if self._close:
                  # server is done. do not make more threads
                  self.shutdown_request(request)
                  return 
  
              if self._threads is None:
                  self._threads = {}
  
              if len(self._threads) + 1 > MAX_RPC_THREADS:
                  # overloaded
                  log.warning("Too many outstanding requests ({})".format(len(self._threads)))
                  self.shutdown_request(request)
                  return
  
              t.start()
  
              self._threads[t.ident] = t
  
              if BLOCKSTACK_TEST:
                  log.debug('{} active threads (added {})'.format(len(self._threads), t.ident))
docs: Start a new thread to process the request.