+void restart_process() {
+ /* Append a NULL to the end of argv[]. */
+ char **restart_argv = (char **)alloca((process_argc + 1) * sizeof(char *));
+ memcpy(restart_argv, process_argv, process_argc * sizeof(char *));
+ restart_argv[process_argc] = NULL;
+ #ifdef WIN32
+ execv(process_argv[0], (const char * const*)restart_argv);
+ #else
+ execv(process_argv[0], restart_argv);
+ #endif
+}
+