This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFC: patch to lin-lwp.c
- From: "J. Johnston" <jjohnstn at redhat dot com>
- To: "J. Johnston" <jjohnstn at redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Wed, 06 Aug 2003 13:11:09 -0400
- Subject: Re: RFC: patch to lin-lwp.c
- Organization: Red Hat Inc.
- References: <3F303C1E.7040304@redhat.com>
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;
}