This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] remote: Move discard_pending_stop_replies call


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9607784ac00f9278094e962963f6271472b1dfca

commit 9607784ac00f9278094e962963f6271472b1dfca
Author: Pedro Alves <palves@redhat.com>
Date:   Tue May 22 18:22:09 2018 +0100

    remote: Move discard_pending_stop_replies call
    
    This helps because discard_pending_stop_replies will later become a
    method of remote_target.  Otherwise, when we have multiple instances
    of remote_target, we'd have to make discard_pending_stop_replies find
    the inferior's target_ops, and upcast it to remote_target (if indeed a
    remote) to find the pending stop replies queue to clear.
    
    gdb/ChangeLog:
    2018-05-22  Pedro Alves  <palves@redhat.com>
    
    	* remote.c (remote_target::mourn_inferior): Move
    	discard_pending_stop_replies call here from ...
    	(_initialize_remote): ... here.

Diff:
---
 gdb/ChangeLog | 6 ++++++
 gdb/remote.c  | 7 ++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 205dd4d..55afb54 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
 2018-05-22  Pedro Alves  <palves@redhat.com>
 
+	* remote.c (remote_target::mourn_inferior): Move
+	discard_pending_stop_replies call here from ...
+	(_initialize_remote): ... here.
+
+2018-05-22  Pedro Alves  <palves@redhat.com>
+
 	* remote.c (compare_section_command): Remove set_general_process
 	call.
 
diff --git a/gdb/remote.c b/gdb/remote.c
index fbf23b8..59880a9 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -9671,6 +9671,10 @@ remote_target::mourn_inferior ()
 {
   struct remote_state *rs = get_remote_state ();
 
+  /* We're no longer interested in notification events of an inferior
+     that exited or was killed/detached.  */
+  discard_pending_stop_replies (current_inferior ());
+
   /* In 'target remote' mode with one inferior, we close the connection.  */
   if (!rs->extended && number_of_live_inferiors () <= 1)
     {
@@ -14073,9 +14077,6 @@ _initialize_remote (void)
 
   /* Hook into new objfile notification.  */
   gdb::observers::new_objfile.attach (remote_new_objfile);
-  /* We're no longer interested in notification events of an inferior
-     when it exits.  */
-  gdb::observers::inferior_exit.attach (discard_pending_stop_replies);
 
 #if 0
   init_remote_threadtests ();


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]