Fix exit/restart from GSOD.

SVN revision: 23853
This commit is contained in:
Kim Woelders 2006-07-11 23:17:19 +00:00
parent 2157a8c9ad
commit c574b9b958
3 changed files with 6 additions and 1 deletions

View File

@ -500,6 +500,7 @@ typedef struct
char restart;
char xselect;
char exiting;
char in_signal_handler;
char save_ok;
char coredump;
int exit_mode;

View File

@ -34,6 +34,8 @@ SignalHandler(int sig)
static int loop_count = 0;
int status;
Mode.wm.in_signal_handler = 1;
if (EventDebug(EDBUG_TYPE_SESSION))
Eprintf("SignalHandler signal=%d\n", sig);
@ -121,6 +123,8 @@ SignalHandler(int sig)
;
break;
}
Mode.wm.in_signal_handler = 0;
}
static void

View File

@ -673,7 +673,7 @@ SessionExit(int mode, const char *param)
Eprintf("SessionExit: mode=%d(%d) prm=%s\n", mode, Mode.wm.exit_mode,
param);
if (Mode.wm.startup)
if (Mode.wm.startup || Mode.wm.in_signal_handler)
goto done;
switch (mode)