RFC: patch to lin-lwp.c

Michael Snyder msnyder@redhat.com
Wed Oct 8 00:19:00 GMT 2003


Daniel Jacobowitz wrote:
> This patch was never reviewed as far as I can see.  I just got a bug
> report that I think it would fix...
> 
> Mark, you've said that you don't feel comfortable maintaining the
> Linux-specific threading layer, is that recollection right?  Michael,
> do you? 

Barely.  I felt about 50% able to grok it when I last worked on it,
and it's changed a lot since then.

 > If not, I'd like to clearly indicate who can approve patches
> to lin-lwp.c.

It's more who ought to than who can.  I think any of you, me,
Mark, or Jim Blandy (and maybe we ought to add Jeff Johnston)
are qualified to approve them, but I don't know which one or
two persons understand it fully enough to be called on as a
maintainer.  Jim and I, for instance, worked on it a long time
ago.

Part of the problem, I think, is that nobody really wants it.
It's complicated, difficult, and fragile.


> 
> On Wed, Aug 06, 2003 at 01:11:09PM -0400, J. Johnston wrote:
> 
>>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;
>> }
> 
> 
> 




More information about the Gdb-patches mailing list