Are you on Linux? Do you want to get good backtraces from an asynchronous signal handler? Do not use abort(3). It generates terrible backtraces, use kill(getpid(), SIGABRT).
Hmm.. now I'm confused. raise() should not be a noreturn function. E.g. raise(SIGWINCH) will almost certainly return. So it seems like something else is going on here. Strange.
-
-
I think both raise() and abort() are asynchronous themselves, while kill() isn't? Keep in mind, I'm calling this from an asynchronous signal handler.
-
Hm.. Shouldn't be. raise(x) should really just be a shortcut for kill(getpid(), x). Also, raise() is guaranteed to only return after the signal handler (if any) finished executing. So it mustn't be implemented asynchronously. I get similar "bt" output for all 3 cases in this ex:pic.twitter.com/AXbIWmevDV
- Show replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.