aboutsummaryrefslogtreecommitdiff
path: root/nptl/forward.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-04-12 00:14:16 +0000
committerUlrich Drepper <drepper@redhat.com>2003-04-12 00:14:16 +0000
commit6efd481484e5d8d47b834fd034dc62f4c036d2cf (patch)
treec4bd9e169d534ceaf83f4b3f6b7f034e0e1cb379 /nptl/forward.c
parent32b0da568de098fc2d62da7cf6a06ddbaba156d7 (diff)
downloadglibc-6efd481484e5d8d47b834fd034dc62f4c036d2cf.zip
glibc-6efd481484e5d8d47b834fd034dc62f4c036d2cf.tar.gz
glibc-6efd481484e5d8d47b834fd034dc62f4c036d2cf.tar.bz2
Declare __pthread_unwind. Define __do_cancel to use it. Declare old cleanup handler installation functions.
Diffstat (limited to 'nptl/forward.c')
-rw-r--r--nptl/forward.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/nptl/forward.c b/nptl/forward.c
index 290c2d7..ed3e23e 100644
--- a/nptl/forward.c
+++ b/nptl/forward.c
@@ -19,10 +19,12 @@
#include <dlfcn.h>
#include <pthreadP.h>
+#include <signal.h>
#include <stdlib.h>
#include <shlib-compat.h>
#include <atomic.h>
+#include <sysdep.h>
/* Pointers to the libc functions. */
@@ -170,3 +172,11 @@ FORWARD (pthread_setcancelstate, (int state, int *oldstate), (state, oldstate),
0)
FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
+
+FORWARD2(__pthread_unwind,
+ void attribute_hidden __attribute ((noreturn)) __cleanup_fct_attribute,
+ (__pthread_unwind_buf_t *buf), (buf), {
+ /* We cannot call abort() here. */
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (kill, err, 1, SIGKILL);
+ })