From da63009e0f5ac74b33d8860a764d8103c5f60ec6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 12 Dec 2002 04:46:44 +0000 Subject: [PATCH] Update. * Makefile (tests): Add tst-cleanup1. * tst-cleanup1.c: New file. * cancellation.c (__cleanup_thread): Removed. (__do_cancel): Remove call to __cleanup_thread. * pthreadP.h: Remove __cleanup_thread prorotype. --- nptl/ChangeLog | 6 ++++++ nptl/Makefile | 1 + nptl/cancellation.c | 41 ----------------------------------------- nptl/pthreadP.h | 2 -- 4 files changed, 7 insertions(+), 43 deletions(-) diff --git a/nptl/ChangeLog b/nptl/ChangeLog index a679621..c2a0347 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,11 @@ 2002-12-11 Ulrich Drepper + * Makefile (tests): Add tst-cleanup1. + * tst-cleanup1.c: New file. + * cancellation.c (__cleanup_thread): Removed. + (__do_cancel): Remove call to __cleanup_thread. + * pthreadP.h: Remove __cleanup_thread prorotype. + * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start): Remember function and argument even if cancellation handler function is not available. diff --git a/nptl/Makefile b/nptl/Makefile index 14ada14..57dd89f 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -127,6 +127,7 @@ tests = tst-mutex1 tst-mutex2 tst-mutex3 tst-mutex4 tst-mutex5 tst-mutex6 \ tst-fork1 tst-fork2 tst-fork3 \ tst-atfork1 \ tst-cancel1 tst-cancel2 tst-cancel3 tst-cancel4 \ + tst-cleanup1 \ tst-flock1 tst-flock2 \ tst-signal1 tst-signal2 tst-signal3 \ tst-exec1 tst-exec2 tst-exec3 \ diff --git a/nptl/cancellation.c b/nptl/cancellation.c index 3cdc574..0d0af1c 100644 --- a/nptl/cancellation.c +++ b/nptl/cancellation.c @@ -42,9 +42,6 @@ __do_cancel (char *currentframe) { struct pthread *self = THREAD_SELF; - /* Cleanup the thread-local storage. */ - __cleanup_thread (self, currentframe); - /* Throw an exception. */ // XXX TBI @@ -55,44 +52,6 @@ __do_cancel (char *currentframe) } -void -__cleanup_thread (struct pthread *self, char *currentframe) -{ - struct _pthread_cleanup_buffer *cleanups; - - /* Call all registered cleanup handlers. */ - cleanups = THREAD_GETMEM (self, cleanup); - if (__builtin_expect (cleanups != NULL, 0)) - { - struct _pthread_cleanup_buffer *last; - - while (FRAME_LEFT (currentframe, cleanups)) - { - last = cleanups; - cleanups = cleanups->__prev; - - if (cleanups == NULL || FRAME_LEFT (last, cleanups)) - { - cleanups = NULL; - break; - } - } - - while (cleanups != NULL) - { - /* Call the registered cleanup function. */ - cleanups->__routine (cleanups->__arg); - - last = cleanups; - cleanups = cleanups->__prev; - - if (FRAME_LEFT (last, cleanups)) - break; - } - } -} - - /* The next two functions are similar to pthread_setcanceltype() but more specialized for the use in the cancelable functions like write(). They do not need to check parameters etc. */ diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index 4fba194..1813a04 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -88,8 +88,6 @@ extern int __pthread_debug attribute_hidden; /* Function performing the cancellation. */ extern void __do_cancel (char *currentframe) __attribute ((visibility ("hidden"), noreturn, regparm (1))); -extern void __cleanup_thread (struct pthread *self, char *currentframe) - __attribute ((visibility ("hidden"), regparm (2))); /* Test whether stackframe is still active. */ -- 2.7.4