code: def restart_with_reloader(self):
          
          while 1:
              _log("info", " * Restarting with %s" % self.name)
              args = _get_args_for_reloading()
  
              # a weird bug on windows. sometimes unicode strings end up in the
              # environment and subprocess.call does not like this, encode them
              # to latin1 and continue.
              if os.name == "nt" and PY2:
                  new_environ = {}
                  for key, value in iteritems(os.environ):
                      if isinstance(key, text_type):
                          key = key.encode("iso-8859-1")
                      if isinstance(value, text_type):
                          value = value.encode("iso-8859-1")
                      new_environ[key] = value
              else:
                  new_environ = os.environ.copy()
  
              new_environ["WERKZEUG_RUN_MAIN"] = "true"
              exit_code = subprocess.call(args, env=new_environ, close_fds=False)
              if exit_code != 3:
                  return exit_code
docs: Spawn a new Python interpreter with the same arguments as this one,
          but running the reloader thread.