summaryrefslogtreecommitdiff
path: root/sql/stacktrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'sql/stacktrace.c')
-rw-r--r--sql/stacktrace.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sql/stacktrace.c b/sql/stacktrace.c
index ab1113f74cf..408006dac93 100644
--- a/sql/stacktrace.c
+++ b/sql/stacktrace.c
@@ -205,11 +205,17 @@ resolve it\n");
/* Produce a core for the thread */
-#ifdef HAVE_WRITE_CORE
+#ifdef HAVE_LINUXTHREADS
void write_core(int sig)
{
signal(sig, SIG_DFL);
if (fork() != 0) exit(1); // Abort main program
// Core will be written at exit
}
-#endif /* HAVE_WRITE_CORE */
+#else
+void write_core(int sig)
+{
+ signal(sig, SIG_DFL);
+ pthread_kill(pthread_self(), sig);
+}
+#endif