code: def handle_request(self):
      
      timeout = self.socket.gettimeout()
      if timeout is None:
        timeout = self.timeout
      elif self.timeout is not None:
        timeout = min(timeout, self.timeout)
      fd_sets = safe_select([self], [], [], timeout)
      if not fd_sets[0]:
        self.handle_timeout()
        return
  
      # After select tells us we can safely accept, guard the accept and request
      # handling with the lifecycle lock to avoid abrupt teardown mid-request.
      with self.lifecycle_lock():
        self._handle_request_noblock()
docs: Override of TCPServer.handle_request() that provides locking.
  
      Calling this method has the effect of "maybe" (if the socket does not time out first)
      accepting a request and (because we mixin in ThreadingMixIn) spawning it on a thread. It should
      always return within `min(self.timeout, socket.gettimeout())`.
  
      N.B. Most of this is copied verbatim from SocketServer.py in the stdlib.