aboutsummaryrefslogtreecommitdiff
path: root/gdb/defs.h
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2014-03-18 22:48:06 +0100
committerJan Kratochvil <jan.kratochvil@redhat.com>2014-03-18 22:48:06 +0100
commit06c868a8dc5ef46ab7dd6601c8bc2f417e415af9 (patch)
tree7f84cc92cda1b30d22b7356698bae1bf89a2d076 /gdb/defs.h
parentdea80df0999ae0bad56e79af2a88a30be38bb8e4 (diff)
downloadgdb-06c868a8dc5ef46ab7dd6601c8bc2f417e415af9.zip
gdb-06c868a8dc5ef46ab7dd6601c8bc2f417e415af9.tar.gz
gdb-06c868a8dc5ef46ab7dd6601c8bc2f417e415af9.tar.bz2
Fix SIGTERM signal safety (PR gdb/15358).
gdb/ 2014-03-18 Jan Kratochvil <jan.kratochvil@redhat.com> PR gdb/15358 * defs.h (sync_quit_force_run): New declaration. (QUIT): Check also SYNC_QUIT_FORCE_RUN. * event-top.c (async_sigterm_handler): New declaration. (async_sigterm_token): New variable. (async_init_signals): Create also async_sigterm_token. (async_sigterm_handler): New function. (sync_quit_force_run): New variable. (handle_sigterm): Replace quit_force call by other calls. * utils.c (quit): Call quit_force if SYNC_QUIT_FORCE_RUN. gdb/testsuite/ 2014-03-18 Jan Kratochvil <jan.kratochvil@redhat.com> PR gdb/15358 * gdb.base/gdb-sigterm.c: New file. * gdb.base/gdb-sigterm.exp: New file. Message-ID: <20140316135334.GA30698@host2.jankratochvil.net>
Diffstat (limited to 'gdb/defs.h')
-rw-r--r--gdb/defs.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/defs.h b/gdb/defs.h
index 480133d..47da43a 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -171,6 +171,9 @@ extern int check_quit_flag (void);
/* * Set the quit flag. */
extern void set_quit_flag (void);
+/* Flag that function quit should call quit_force. */
+extern volatile int sync_quit_force_run;
+
extern int immediate_quit;
extern void quit (void);
@@ -183,7 +186,7 @@ extern void quit (void);
needed. */
#define QUIT { \
- if (check_quit_flag ()) quit (); \
+ if (check_quit_flag () || sync_quit_force_run) quit (); \
if (deprecated_interactive_hook) deprecated_interactive_hook (); \
}