mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-04 11:17:31 +00:00
Rename RunCallBacksToRun to llvm::sys::RunSignalHandlers
And expose it in Signals.h, allowing clients to call it directly, possibly LLVMErrorHandler which currently calls RunInterruptHandlers but not RunSignalHandlers, thus for example not printing the stack backtrace on Unixish OSes. On Windows it does happen because RunInterruptHandlers ends up calling the callbacks as well via Cleanup(). This difference in behaviour and code structures in */Signals.inc should be patched in the future. llvm-svn: 242936
This commit is contained in:
parent
7bfb3a910e
commit
5a405f083b
@ -47,6 +47,9 @@ namespace sys {
|
||||
/// \brief Print the stack trace using the given \c raw_ostream object.
|
||||
void PrintStackTrace(raw_ostream &OS);
|
||||
|
||||
// Run all registered signal handlers.
|
||||
void RunSignalHandlers();
|
||||
|
||||
/// AddSignalHandler - Add a function to be called when an abort/kill signal
|
||||
/// is delivered to the process. The handler can have a cookie passed to it
|
||||
/// to identify what instance of the handler it is.
|
||||
|
@ -28,7 +28,7 @@ using namespace sys;
|
||||
|
||||
static ManagedStatic<std::vector<std::pair<void (*)(void *), void *>>>
|
||||
CallBacksToRun;
|
||||
void RunCallBacksToRun() {
|
||||
void sys::RunSignalHandlers() {
|
||||
if (!CallBacksToRun.isConstructed())
|
||||
return;
|
||||
for (auto &I : *CallBacksToRun)
|
||||
|
@ -201,7 +201,7 @@ static RETSIGTYPE SignalHandler(int Sig) {
|
||||
}
|
||||
|
||||
// Otherwise if it is a fault (like SEGV) run any handler.
|
||||
RunCallBacksToRun();
|
||||
llvm::sys::RunSignalHandlers();
|
||||
|
||||
#ifdef __s390__
|
||||
// On S/390, certain signals are delivered with PSW Address pointing to
|
||||
|
@ -457,7 +457,7 @@ static void Cleanup() {
|
||||
llvm::sys::fs::remove(FilesToRemove->back());
|
||||
FilesToRemove->pop_back();
|
||||
}
|
||||
RunCallBacksToRun();
|
||||
llvm::sys::RunSignalHandlers();
|
||||
LeaveCriticalSection(&CriticalSection);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user