diff options
author | Kevin Buettner <kevinb@redhat.com> | 2023-02-27 16:11:37 -0700 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2023-02-27 16:20:39 -0700 |
commit | 80d03917838c16ee0da53a4a8642d5df3bee724e (patch) | |
tree | 8a5c0b18623ebfde5011b8b181409915910c0f97 | |
parent | 363429d593eb1eb17f3f2cf6c247f60fadf660d9 (diff) | |
download | binutils-gdb-80d03917838c16ee0da53a4a8642d5df3bee724e.tar.gz |
Introduce set_force_quit_flag and change type of sync_quit_force_run
At the moment, handle_sigterm() in event-top.c does the following:
sync_quit_force_run = 1;
set_quit_flag ();
This was used several more times in a later patch in this series, so
I'm introducing (at Pedro's suggestion) a new function named
'set_force_quit_flag'. It simply sets sync_quit_force_run and also
calls set_quit_flag(). I've revised the later patch to call
set_force_quit_flag instead.
I noticed that sync_quit_force_run is declared as an int but is being
used as a bool, so I also changed its type to bool in this commit.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
Approved-By: Pedro Alves <pedro@palves.net>
-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
diff --git a/gdb/defs.h b/gdb/defs.h index aba33b82e6b..90748c586f4 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -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 36863292696..53ddd515be7 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 08cc41b4ef8..0138c8e9fb6 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"); } |