code: def run(self):
          
          self.serious.set()
          if signalfd and self.sigmask:
              signalfd.sigprocmask(signalfd.SIG_BLOCK, self.sigmask)
          pthread_setname_np(self.ident, self.psname)
  
          if self.bind_delay:
              _LOG("Delaying UDS binding %s seconds ..." % self.bind_delay)
              _ORIGINAL_SLEEP(self.bind_delay)
  
          sock = self.get_socket()
          while self.should_run:
              _LOG("Waiting for new connection (in pid:%s) ..." % os.getpid())
              try:
                  client = ManholeConnectionThread(sock.accept()[0], self.connection_handler, self.daemon_connection)
                  client.start()
                  client.join()
              except socket.timeout:
                  continue
              except (InterruptedError, socket.error) as e:
                  if e.errno != errno.EINTR:
                      raise
                  continue
              finally:
                  client = None
docs: Runs the manhole loop. Only accepts one connection at a time because:
  
          * This thread is a daemon thread (exits when main thread exists).
          * The connection need exclusive access to stdin, stderr and stdout so it can redirect inputs and outputs.