diff options
author | Andrew Burgess <aburgess@redhat.com> | 2021-11-24 11:36:12 +0000 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2021-11-25 10:00:18 +0000 |
commit | fce6cd341b48a2589cb4520c7718c80cb0b27c80 (patch) | |
tree | 236e91b872a6a2a2753503bfd2d002365a8844d0 | |
parent | 0c1e6e265b276542ccb3f392c3070c3dd9339303 (diff) | |
download | gdb-fce6cd341b48a2589cb4520c7718c80cb0b27c80.zip gdb-fce6cd341b48a2589cb4520c7718c80cb0b27c80.tar.gz gdb-fce6cd341b48a2589cb4520c7718c80cb0b27c80.tar.bz2 |
gdb: hoist target_async_permitted checks into target.c
This commit moves the target_async_permitted check out of each targets
::can_async_p method and into the target_can_async_p wrapper function.
I've left some asserts in the two ::can_async_p methods that I
changed, which will hopefully catch any direct calls to these methods
that might be added in the future.
There should be no user visible changes after this commit.
-rw-r--r-- | gdb/linux-nat.c | 8 | ||||
-rw-r--r-- | gdb/remote.c | 11 | ||||
-rw-r--r-- | gdb/target.c | 2 |
3 files changed, 11 insertions, 10 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index f8f7284..fbb60a3 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -4088,9 +4088,11 @@ linux_nat_target::is_async_p () bool linux_nat_target::can_async_p () { - /* We're always async, unless the user explicitly prevented it with the - "maint set target-async" command. */ - return target_async_permitted; + /* This flag should be checked in the common target.c code. */ + gdb_assert (target_async_permitted); + + /* Otherwise, this targets is always able to support async mode. */ + return true; } bool diff --git a/gdb/remote.c b/gdb/remote.c index 724386e..6ecea5b 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -14379,14 +14379,11 @@ remote_target::thread_info_to_thread_handle (struct thread_info *tp) bool remote_target::can_async_p () { - struct remote_state *rs = get_remote_state (); - - /* We don't go async if the user has explicitly prevented it with the - "maint set target-async" command. */ - if (!target_async_permitted) - return false; + /* This flag should be checked in the common target.c code. */ + gdb_assert (target_async_permitted); - /* We're async whenever the serial device is. */ + /* We're async whenever the serial device can. */ + struct remote_state *rs = get_remote_state (); return serial_can_async_p (rs->remote_desc); } diff --git a/gdb/target.c b/gdb/target.c index 970e2a7..db1abcc 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -399,6 +399,8 @@ target_can_async_p () bool target_can_async_p (struct target_ops *target) { + if (!target_async_permitted) + return false; return target->can_async_p (); } |