Relevant history:
It's not clear, to me, why the update of the NEEDS_ALTSTACK variable is occurring. I don't know everything there is to know about signal handlers, but I do know
- they are terribly underspecified
- they are surprisingly thread-specific in multithreaded programs
- yet some aspects of them remain process-wide in relevance
We have two fairly distinct codepaths for make_handler. In code we control, we only call one or the other (i.e. a constant input). They're really quite different functions. So it's not clear where the logical dependencies emerge between the two.