aboutsummaryrefslogtreecommitdiff
path: root/nptl/pthreadP.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-06-15 20:45:32 +0000
committerUlrich Drepper <drepper@redhat.com>2003-06-15 20:45:32 +0000
commit1fde494e69792603263bdf85819831f00d29cee4 (patch)
tree59b63456222bf38a3ebeb218f21b8656ec5c1704 /nptl/pthreadP.h
parent2b4500480e460c344b8def37c716328bf3b1d970 (diff)
downloadglibc-1fde494e69792603263bdf85819831f00d29cee4.tar
glibc-1fde494e69792603263bdf85819831f00d29cee4.tar.gz
glibc-1fde494e69792603263bdf85819831f00d29cee4.tar.bz2
glibc-1fde494e69792603263bdf85819831f00d29cee4.zip
(LIBC_CANCEL_ASYNC): Also define for librt. (LIBC_CANCEL_RESET): Likewise. Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
Diffstat (limited to 'nptl/pthreadP.h')
-rw-r--r--nptl/pthreadP.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
index a979f07f0b..e10589c11e 100644
--- a/nptl/pthreadP.h
+++ b/nptl/pthreadP.h
@@ -152,6 +152,14 @@ __do_cancel (void)
# define LIBC_CANCEL_HANDLED() \
__asm (".globl " __SYMBOL_PREFIX "__pthread_enable_asynccancel"); \
__asm (".globl " __SYMBOL_PREFIX "__pthread_disable_asynccancel")
+#elif defined NOT_IN_libc && defined IS_IN_librt
+# define LIBC_CANCEL_ASYNC() \
+ __librt_enable_asynccancel ()
+# define LIBC_CANCEL_RESET(val) \
+ __librt_disable_asynccancel (val)
+# define LIBC_CANCEL_HANDLED() \
+ __asm (".globl " __SYMBOL_PREFIX "__librt_enable_asynccancel"); \
+ __asm (".globl " __SYMBOL_PREFIX "__librt_disable_asynccancel")
#else
# define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
# define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
@@ -342,6 +350,12 @@ extern int __libc_enable_asynccancel (void) attribute_hidden;
extern void __libc_disable_asynccancel (int oldtype)
internal_function attribute_hidden;
+
+/* The two functions are in librt.so and not exported. */
+extern int __librt_enable_asynccancel (void) attribute_hidden;
+extern void __librt_disable_asynccancel (int oldtype)
+ internal_function attribute_hidden;
+
#ifdef IS_IN_libpthread
/* Special versions which use non-exported functions. */
extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,