From: Tankut Baris Aktemur Date: Mon, 13 Dec 2021 11:22:48 +0000 (+0100) Subject: gdbserver/linux-low: replace direct assignment to current_thread X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=20ac1cdb8c76397a314c248c3db733d7db1f8339;p=binutils-gdb.git gdbserver/linux-low: replace direct assignment to current_thread Use scoped_restore_current_thread and switch_to_thread in linux_process_target::wait_for_sigstop. --- diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc index 373bacbb74d..185dab4527f 100644 --- a/gdbserver/linux-low.cc +++ b/gdbserver/linux-low.cc @@ -3826,6 +3826,8 @@ linux_process_target::wait_for_sigstop () else saved_tid = null_ptid; /* avoid bogus unused warning */ + scoped_restore_current_thread restore_thread; + if (debug_threads) debug_printf ("wait_for_sigstop: pulling events\n"); @@ -3836,7 +3838,7 @@ linux_process_target::wait_for_sigstop () gdb_assert (ret == -1); if (saved_thread == NULL || mythread_alive (saved_tid)) - current_thread = saved_thread; + return; else { if (debug_threads) @@ -3845,7 +3847,8 @@ linux_process_target::wait_for_sigstop () /* We can't change the current inferior behind GDB's back, otherwise, a subsequent command may apply to the wrong process. */ - current_thread = NULL; + restore_thread.dont_restore (); + switch_to_thread (nullptr); } }