From 9885e6bb5b0f6f0147f9b3a15a4bd4516faf4a26 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 23 Jan 2019 18:58:35 +0000 Subject: [PATCH] Remove cleanup from stop_all_threads This removes the cleanup from stop_all_threads, replacing it with a scope_exit. gdb/ChangeLog: 2019-01-23 Tom Tromey Pedro Alves * infrun.c (disable_thread_events): Delete. (stop_all_threads): Use SCOPE_EXIT. --- gdb/ChangeLog | 6 ++++++ gdb/infrun.c | 13 +------------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4f53675..1df10d4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,6 +1,12 @@ 2019-01-23 Tom Tromey Pedro Alves + * infrun.c (disable_thread_events): Delete. + (stop_all_threads): Use SCOPE_EXIT. + +2019-01-23 Tom Tromey + Pedro Alves + * symfile.c: Include forward-scope-exit.h. (clear_symtab_users_cleanup): Replace forward declaration with a FORWARD_SCOPE_EXIT. diff --git a/gdb/infrun.c b/gdb/infrun.c index 76dedd2..d954eae 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -4273,14 +4273,6 @@ save_waitstatus (struct thread_info *tp, struct target_waitstatus *ws) } } -/* A cleanup that disables thread create/exit events. */ - -static void -disable_thread_events (void *arg) -{ - target_thread_events (0); -} - /* See infrun.h. */ void @@ -4289,7 +4281,6 @@ stop_all_threads (void) /* We may need multiple passes to discover all threads. */ int pass; int iterations = 0; - struct cleanup *old_chain; gdb_assert (target_is_non_stop_p ()); @@ -4299,7 +4290,7 @@ stop_all_threads (void) scoped_restore_current_thread restore_thread; target_thread_events (1); - old_chain = make_cleanup (disable_thread_events, NULL); + SCOPE_EXIT { target_thread_events (0); }; /* Request threads to stop, and then wait for the stops. Because threads we already know about can spawn more threads while we're @@ -4484,8 +4475,6 @@ stop_all_threads (void) } } - do_cleanups (old_chain); - if (debug_infrun) fprintf_unfiltered (gdb_stdlog, "infrun: stop_all_threads done\n"); } -- 2.7.4