On 11/09/2009, at 12:52 PM, Adam R. Maxwell wrote:
Also, for my own curiosity, is it a problem that your read override doesn't appear to be async-signal safe?
Absolutely no idea.
How would I make it async-signal safe
Well, my understanding is that you'd be limited to functions listed in the man page for sigaction(2). So strdup/getenv/etc would be off limits. Not much fun.
Indeed. I very much doubt we could practically achieve what we need to with this limitation.
and why would I do this?
My guess is that it would matter if code using the library relies on calling read() from a signal handler. Signal handling is outside my area of expertise, so I was hoping someone else would have an answer :).
I am guessing this has something to do the $NOCANCEL symbol variant.
The document http://developer.apple.com/mac/library/releasenotes/Darwin/SymbolVariantsRel... just notes that it is for internal use.
I'll do some more research and let you know.