Use real time signal for threads instead of SIGURG.
This guarantees that any application is not also using this signal
for some other purpose.
Change-Id: I7c9bbb0ec8bb4e13322ecda951bcd43c6bf6ee1a
diff --git a/libbacktrace/BacktraceThread.cpp b/libbacktrace/BacktraceThread.cpp
index 4cda19e..e0bab24 100644
--- a/libbacktrace/BacktraceThread.cpp
+++ b/libbacktrace/BacktraceThread.cpp
@@ -136,7 +136,7 @@
bool BacktraceThread::TriggerUnwindOnThread(ThreadEntry* entry) {
entry->state = STATE_WAITING;
- if (tgkill(Pid(), Tid(), SIGURG) != 0) {
+ if (tgkill(Pid(), Tid(), THREAD_SIGNAL) != 0) {
BACK_LOGW("tgkill failed %s", strerror(errno));
return false;
}
@@ -196,9 +196,9 @@
act.sa_sigaction = SignalHandler;
act.sa_flags = SA_RESTART | SA_SIGINFO | SA_ONSTACK;
sigemptyset(&act.sa_mask);
- if (sigaction(SIGURG, &act, &oldact) == 0) {
+ if (sigaction(THREAD_SIGNAL, &act, &oldact) == 0) {
retval = TriggerUnwindOnThread(entry);
- sigaction(SIGURG, &oldact, NULL);
+ sigaction(THREAD_SIGNAL, &oldact, NULL);
} else {
BACK_LOGW("sigaction failed %s", strerror(errno));
}