diff options
author | Ulrich Drepper <drepper@redhat.com> | 2001-11-29 07:47:56 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2001-11-29 07:47:56 +0000 |
commit | a0323a1c8ffc348a4fe26f99dc2d4185a88aeb90 (patch) | |
tree | 0326ff96ea7d0e674cbc9b3bf66ff599218d6c6f /linuxthreads | |
parent | 3933755f8e8663eeed922401781f52de59bc0680 (diff) |
Update.
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 31b954d736..adb8183843 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,21 @@ +2001-11-28 Kaz Kylheku <kaz@ashi.footprints.net> + + Bugfix to pthread_key_delete. It was iterating over the thread + manager's linked list of threads, behind the thread manager's + back causing a race. The fix is to have the manager iterate over + the threads instead, using a new request type for doing so. + * internals.h (struct pthread_request): New manager request type + REQ_FOR_EACH_THREAD. + * manager.c (pthread_for_each_thread): New function. + (__pthread_manager): Handle new REQ_FOR_EACH_THREAD request. + * specific.c (struct pthread_key_delete_helper_args): New type. + (pthread_key_delete_helper): New static function. + (pthread_key_delete): Use the new thread manager + REQ_FOR_EACH_THREAD function to iterate over the threads and set + the delete key slot to a null value in each thread. + * Examples/ex18.c: New test. + * Makefile (tests): Add ex18. + 2001-11-22 Wolfram Gloger <wg@malloc.de> * pthread.c (pthread_onexit_process): Don't call free |