This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


 > So when you want to wait, you make sure such a signal handler is
 > installed for SIGCHLD, unblock SIGCHLD, and call select on a set of fds
 > that includes the one written to by the signal handler.  If you get a
 > byte on that fd, you know there's a child ready to be waited for. When
 > you're done waiting, you re-block the signal.  It's possible to get
 > spurious wakeups this way (for instance if a signal is received between
 > the return of select and the re-blocking), but with a little care
 > everything works out OK.
 > 
 > This is actually pretty similar to the way you do it with threads.
 > 
 > Does that make sense?

Yes I think so.  I don't quite follow the explanation of pselect in the manpage
but I think you're saying that the signal handler for SIGCHLD will run even
when GDB is already in select, and can get GDB's attention by writing to a
pipe with a file descriptor that select is watching.

-- 
Nick                                           http://www.inet.net.nz/~nickrob


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]