about summary refs log tree commit diff
path: root/src/exit
diff options
context:
space:
mode:
Diffstat (limited to 'src/exit')
-rw-r--r--src/exit/abort.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/exit/abort.c b/src/exit/abort.c
index 203dd35c..ecc0f735 100644
--- a/src/exit/abort.c
+++ b/src/exit/abort.c
@@ -1,10 +1,14 @@
 #include <stdlib.h>
 #include <signal.h>
 #include "syscall.h"
+#include "pthread_impl.h"
+#include "atomic.h"
 
 _Noreturn void abort(void)
 {
 	raise(SIGABRT);
+	__block_all_sigs(0);
+	a_crash();
 	raise(SIGKILL);
-	for (;;);
+	_Exit(127);
 }