'Spawn a new Python interpreter with the same arguments as this one,
but running the reloader thread.'

def restart_with_reloader(self):

    while 1:
        _log('info', ('    *    Restarting    with    %s' % self.name))
        args = _get_args_for_reloading()
        new_environ = os.environ.copy()
        new_environ['WERKZEUG_RUN_MAIN'] = 'true'
        if ((os.name == 'nt') and PY2):
            for (key, value) in iteritems(new_environ):
                if isinstance(value, text_type):
                    new_environ[key] = value.encode('iso-8859-1')
        exit_code = subprocess.call(args, env=new_environ, close_fds=False)
        if (exit_code != 3):
            return exit_code
