Hello!
On Mon, Oct 13, 2008 at 07:35:34PM +0100, Pedro Alves wrote:
> Thanks Thomas :-) One thing I asked myself was, if gnu-nat.c couldn't be using
> the port's id as thread ids instead of a locally auto-generated number. Maybe
> the thread id of the main thread would be preserved across execs this way, but,
> this is off-scope for now.
I can't tell without having a detailed look at that -- for which I
absolutely don't have the time at the moment, unfortunately. I made this
a TODO item:
> On Monday 13 October 2008 17:40:25, Ulrich Weigand wrote:
> > Hmm. It would appear that "set exec-wrapper" is currently broken with
> > the gnu-nat.c target, right?
>
> Yeah, it appears so. Don't know if it's possible to get rid of the local
> pending execs handling in gnu-nat.c. An alternative would be to make
> pending_execs a property of inferior.h:`struct inferior' instead of of
> gnu-nat.c:`struct inf'.
Another TODO item:
> (I also notice that when going through the shell in non-stop
> mode, it would be more correct to resume all threads --- we
> don't want non-stop and its scheduler-locking to apply to the shell.
> Basically, non-stop should be off if there are pending execs.
> This was an existing issue, and doesn't affect linux today, so I'll
> just ignore that for now, as it needs more tweaking to fix.)
And non-stop mode isn't even supported with gnu-nat.c -- yet another TODO
item:
> What do you guys think? Thomas, could you try the attached patch
> on the Hurd, please? I just gave it a spin on x86-64-unknown-linux-gnu
> without regressions.
> 2008-10-13 Pedro Alves
>
> * fork-child.c (startup_inferior): Only set threads not-executing
> after getting all the pending execs. On TARGET_WAITKIND_IGNORE,
> keep waiting, don't resume. On all other cases but
> TARGET_WAITKIND_SIGNALLED and TARGET_WAITKIND_EXITED, switch to
> the event ptid.
Fine on Hurd as well, thanks!
Regards,
Thomas