aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/include
diff options
context:
space:
mode:
authorDavid Xu <davidxu@FreeBSD.org>2010-09-25 01:57:47 +0000
committerDavid Xu <davidxu@FreeBSD.org>2010-09-25 01:57:47 +0000
commitf4213b9006a6ccb41a3e5463038c6f142c10405f (patch)
tree7b4cd520f700d5e2d7a21bc8175c8574d209a3ce /lib/libc/include
parent1ea299ce0d3e449b1f65e0b3679e926038d3c6b8 (diff)
downloadsrc-f4213b9006a6ccb41a3e5463038c6f142c10405f.tar.gz
src-f4213b9006a6ccb41a3e5463038c6f142c10405f.zip
To support stack unwinding for cancellation points, add -fexceptions flag
for them, two functions _pthread_cancel_enter and _pthread_cancel_leave are added to let thread enter and leave a cancellation point, it also makes it possible that other functions can be cancellation points in libraries without having to be rewritten in libthr.
Notes
Notes: svn path=/head/; revision=213153
Diffstat (limited to 'lib/libc/include')
-rw-r--r--lib/libc/include/libc_private.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/libc/include/libc_private.h b/lib/libc/include/libc_private.h
index c5f6eb3f4693..a4737fefe66f 100644
--- a/lib/libc/include/libc_private.h
+++ b/lib/libc/include/libc_private.h
@@ -129,6 +129,8 @@ typedef enum {
PJT_TESTCANCEL,
PJT_CLEANUP_POP_IMP,
PJT_CLEANUP_PUSH_IMP,
+ PJT_CANCEL_ENTER,
+ PJT_CANCEL_LEAVE,
PJT_MAX
} pjt_index_t;
@@ -217,4 +219,7 @@ int _elf_aux_info(int aux, void *buf, int buflen);
struct dl_phdr_info;
int __elf_phdr_match_addr(struct dl_phdr_info *, void *);
+void _pthread_cancel_enter(int);
+void _pthread_cancel_leave(int);
+
#endif /* _LIBC_PRIVATE_H_ */