about summary refs log tree commit diff
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.tar.gz
glibc-3f56243af428c05ce6c17d639378d0c17702a61c.tar.xz
glibc-3f56243af428c05ce6c17d639378d0c17702a61c.zip
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 9cd3e94866..128cb1f8ad 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 a9a98c52ff..2697a18371 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