diff options
-rw-r--r-- | gdb/defs.h | 5 | ||||
-rw-r--r-- | gdb/event-top.c | 13 | ||||
-rw-r--r-- | gdb/utils.c | 2 |
3 files changed, 15 insertions, 5 deletions
@@ -171,7 +171,10 @@ extern quit_handler_ftype *quit_handler; extern void default_quit_handler (void); /* Flag that function quit should call quit_force. */ -extern volatile int sync_quit_force_run; +extern volatile bool sync_quit_force_run; + +/* Set sync_quit_force_run and also call set_quit_flag(). */ +extern void set_force_quit_flag (); extern void quit (void); diff --git a/gdb/event-top.c b/gdb/event-top.c index 3686329..53ddd51 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -1209,7 +1209,15 @@ async_sigterm_handler (gdb_client_data arg) } /* See defs.h. */ -volatile int sync_quit_force_run; +volatile bool sync_quit_force_run; + +/* See defs.h. */ +void +set_force_quit_flag () +{ + sync_quit_force_run = true; + set_quit_flag (); +} /* Quit GDB if SIGTERM is received. GDB would quit anyway, but this way it will clean up properly. */ @@ -1218,8 +1226,7 @@ handle_sigterm (int sig) { signal (sig, handle_sigterm); - sync_quit_force_run = 1; - set_quit_flag (); + set_force_quit_flag (); mark_async_signal_handler (async_sigterm_token); } diff --git a/gdb/utils.c b/gdb/utils.c index 08cc41b..0138c8e 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -641,7 +641,7 @@ quit (void) { if (sync_quit_force_run) { - sync_quit_force_run = 0; + sync_quit_force_run = false; throw_forced_quit ("SIGTERM"); } |