Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 12 Dec 2002 04:46:44 +0000 (04:46 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 12 Dec 2002 04:46:44 +0000 (04:46 +0000)
* 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
nptl/Makefile
nptl/cancellation.c
nptl/pthreadP.h

index a6796211a09d83787dad44e8b77e4c555e45360f..c2a0347dd317f1659e47975eec53918712b43e4f 100644 (file)
@@ -1,5 +1,11 @@
 2002-12-11  Ulrich Drepper  <drepper@redhat.com>
 
+       * 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.
index 14ada1464d5544e9a89deb8807faf40c98e61990..57dd89f8622a03f6e0305981716fa447b1e307a8 100644 (file)
@@ -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 \
index 3cdc57488021cb877487d99f40980d8e57efd367..0d0af1c647c6c9b14d8ba4a82121c5574f22e20b 100644 (file)
@@ -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.  */
index 4fba194108c26cc682ac30f6589267624e2fb430..1813a04583494f4417007d1a250e24c28edda050 100644 (file)
@@ -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.  */