aboutsummaryrefslogtreecommitdiff
path: root/linuxthreads
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-07-20 19:28:08 +0000
committerUlrich Drepper <drepper@redhat.com>2003-07-20 19:28:08 +0000
commit3f56243af428c05ce6c17d639378d0c17702a61c (patch)
treee7dcefb1157e6e1e4e67ad09f359e891f8316eb1 /linuxthreads
parent2a04c802bb972baad3b92ff459b770e8f54aece6 (diff)
downloadglibc-3f56243af428c05ce6c17d639378d0c17702a61c.zip
glibc-3f56243af428c05ce6c17d639378d0c17702a61c.tar.gz
glibc-3f56243af428c05ce6c17d639378d0c17702a61c.tar.bz2
Update.
* sysdeps/unix/sysv/linux/bits/sched.h (__CPU_ZERO): Fix typo.
Diffstat (limited to 'linuxthreads')
-rw-r--r--linuxthreads/ChangeLog7
-rw-r--r--linuxthreads/sysdeps/pthread/bits/libc-lock.h18
2 files changed, 25 insertions, 0 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 9cd3e94..128cb1f 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,10 @@
+2003-07-20 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/pthread/bits/libc-lock.h: Define __libc_cleanup_push and
+ __libc_cleanup_pop.
+
+ * tst-cancel-wrappers.sh: lseek and llseek are no cancellation points.
+
2003-07-14 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Fix typo
diff --git a/linuxthreads/sysdeps/pthread/bits/libc-lock.h b/linuxthreads/sysdeps/pthread/bits/libc-lock.h
index a9a98c5..2697a18 100644
--- a/linuxthreads/sysdeps/pthread/bits/libc-lock.h
+++ b/linuxthreads/sysdeps/pthread/bits/libc-lock.h
@@ -250,6 +250,20 @@ typedef pthread_key_t __libc_key_t;
_pthread_cleanup_pop_restore (&_buffer, (DOIT)); \
}
+#define __libc_cleanup_push(fct, arg) \
+ { struct _pthread_cleanup_buffer _buffer; \
+ int _avail = _pthread_cleanup_push != NULL; \
+ if (_avail) { \
+ _pthread_cleanup_push (&_buffer, (fct), (arg)); \
+ }
+
+#define __libc_cleanup_pop(execute) \
+ if (_avail) { \
+ _pthread_cleanup_pop (&_buffer, execute); \
+ } \
+ }
+
+
/* Create thread-specific key. */
#define __libc_key_create(KEY, DESTRUCTOR) \
(__libc_maybe_call (__pthread_key_create, (KEY, DESTRUCTOR), 1))
@@ -352,6 +366,8 @@ weak_extern (BP_SYM (__pthread_getspecific))
weak_extern (BP_SYM (__pthread_once))
weak_extern (__pthread_initialize)
weak_extern (__pthread_atfork)
+weak_extern (BP_SYM (_pthread_cleanup_push))
+weak_extern (BP_SYM (_pthread_cleanup_pop))
weak_extern (BP_SYM (_pthread_cleanup_push_defer))
weak_extern (BP_SYM (_pthread_cleanup_pop_restore))
# else
@@ -377,6 +393,8 @@ weak_extern (BP_SYM (_pthread_cleanup_pop_restore))
# pragma weak __pthread_atfork
# pragma weak _pthread_cleanup_push_defer
# pragma weak _pthread_cleanup_pop_restore
+# pragma weak _pthread_cleanup_push
+# pragma weak _pthread_cleanup_pop
# endif
#endif