This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] Make continuations per-thread.
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Cc: Daniel Jacobowitz <drow at false dot org>, Vladimir Prus <vladimir at codesourcery dot com>
- Date: Fri, 2 May 2008 12:42:47 +0100
- Subject: Re: [RFA] Make continuations per-thread.
- References: <200804242045.39246.vladimir@codesourcery.com> <20080502030012.GB28580@caradoc.them.org> <200805021234.12472.pedro@codesourcery.com>
A Friday 02 May 2008 12:34:11, Pedro Alves wrote:
> A Friday 02 May 2008 04:00:12, Daniel Jacobowitz wrote:
> > On Thu, Apr 24, 2008 at 07:45:38PM +0300, Vladimir Prus wrote:
> > > Right now, continuations are global. This means that if we're doing
> > > 'finish' in one thread, then we cannot do 'finish' or anything that
> > > also uses continuations, in any other thread. This seems unnecessary
> > > limitation, and this patch makes continuations per-thread.
> > >
> > > Further into non-stop series, it really allows me to do 'finish' or
> > > 'step' in several threads independently.
> > >
> > > OK?
> >
> > Could you explain why this is safe? We will do continuations for the
> > thread which reports an event only. So it seems like continuations
> > for other threads will linger in their struct thread.
> >
> > For example, if we finish from one thread and hit a breakpoint in
> > another thread before the finish returns.
>
> That's true. Attached is what we have next on the non-stop
> series to fix that. I'm not thrilled by it, but there are intermediate
> context switches in handle_inferior_event that make it much uglier to try
> to not make it centralized. This is one of the things that gets much
> better looking when we switch completelly to always-a-thread, and
> get rid of context-switching. I'm introducing another variable, instead of
> using previous_inferior_ptid, which would be a good candidate, but I have
> other plans for it.
Err, it doesn't fix all issues you mentioned. I'll have to do a more than
this.
--
Pedro Alves