Signals scare the hell out of me- that was the first point in learning about UNIX programming that made me question everything I'd learned about what is available to you as a function implementor/UNIX user in user space. It got even worse when I moved to threads and sudddenly I couldn't reconcile threads with signals (which are very process-oriented).
Reentrant code gives me the same willies- or more correctly, it was a big surprise that people wrote code that depended on static values to store state between invocations.
Reentrant code gives me the same willies- or more correctly, it was a big surprise that people wrote code that depended on static values to store state between invocations.