This is the mail archive of the gdb-patches@sources.redhat.com 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]

Re: RFC: patch to lin-lwp.c


Sorry, forgot to attach patch.

J. Johnston wrote:
The attached patch is created to deal with the problem as discussed on:

http://sources.redhat.com/ml/gdb/2003-08/msg00043.html

The fix does two things:

  1. it sets the resumed flag for threads we stopped when the main thread
     exited and then resumed
  2. changes the running_callback to include threads that have events
     pending on them that will be caught on the next wait

Ok to commit?

-- Jeff J.

2003-08-05 Jeff Johnston <jjohnstn@redhat.com>

    * lin-lwp-wait.c (stop_and_resume_callback): Set the resumed flag
    for any lwp we resume.
    (running_callback): Add lwps that have pending status events
    against them to be considered running.




Index: lin-lwp.c
===================================================================
RCS file: /cvs/src/src/gdb/lin-lwp.c,v
retrieving revision 1.47
diff -u -r1.47 lin-lwp.c
--- lin-lwp.c	19 Jun 2003 22:52:03 -0000	1.47
+++ lin-lwp.c	5 Aug 2003 23:09:55 -0000
@@ -839,7 +839,7 @@
 static int
 running_callback (struct lwp_info *lp, void *data)
 {
-  return (lp->stopped == 0);
+  return (lp->stopped == 0 || (lp->status != 0 && lp->resumed));
 }
 
 /* Count the LWP's that have had events.  */
@@ -1087,7 +1087,10 @@
       /* Resume if the lwp still exists.  */
       for (ptr = lwp_list; ptr; ptr = ptr->next)
 	if (lp == ptr)
-	  resume_callback (lp, NULL);
+	  {
+	    resume_callback (lp, NULL);
+	    resume_set_callback (lp, NULL);
+	  }
     }
   return 0;
 }

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