gdb: hoist target_async_permitted checks into target.c
authorAndrew Burgess <aburgess@redhat.com>
Wed, 24 Nov 2021 11:36:12 +0000 (11:36 +0000)
committerAndrew Burgess <aburgess@redhat.com>
Thu, 25 Nov 2021 10:00:18 +0000 (10:00 +0000)
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.

gdb/linux-nat.c
gdb/remote.c
gdb/target.c

index f8f728481ea76c77351d14eb39a1a40dfca8281b..fbb60a398b0c9e355e0b68646fd4ce8372fe3ba8 100644 (file)
@@ -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
index 724386e09164298f3f99f8f366f0ab05593ad473..6ecea5b7fd71b57715ec485b9034ba5fcb22c22b 100644 (file)
@@ -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);
 }
 
index 970e2a784b59dc87039d4a53f59d97582a72b4a2..db1abcc325eb52bf0d4cf3f642d53ef84a39b96b 100644 (file)
@@ -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 ();
 }