Re: Merge of nickrob-async-20060513 to mainline?

Daniel Jacobowitz
2006-09-26T12:38:04Z

On Tue, Sep 26, 2006 at 08:38:23PM +1200, Nick Roberts wrote:
> Below is a (pseudo) diff fragment that should (hopefully) give the general
> idea. Do you mean something along these lines? If yes, I'll try to get it
> to work more generally.

Yes, this should work, though it seems cumbersome. When you've got
a single thread, you don't need to pass actual data around an fd,
just a marker "yes i'm ready now".

Moving the call to waitpid out of linux-nat.c, and to a target
independent file, is a mistake - presumably that's just how you got it
to work quickly? That's related to why it doesn't work for threads.
The vital line is "options ^= __WCLONE" in the loop in linux_nat_wait.
Without __WCLONE, you'll never see a wait status from a thread; with
it you'll never see a wait status from the main program.

Ideally you'd be able to reuse the signal handler logic (see the calls
to sigprocmask and sigsuspend) and thus not have a millisecond latency
and excessive spinning. That's actually a pretty important feature,
because context switching to gdb every millisecond or so is going to
really hurt performance of the debuggee.

--
Daniel Jacobowitz
CodeSourcery