mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Update.
1999-04-14 Andreas Jaeger <aj@arthur.rhein-neckar.de> * wctype/test_wcfuncs.c: New file, tests towlower and towupper. * wctype/Makefile (tests): Add test_wcfuncs.
This commit is contained in:
@ -1,3 +1,8 @@
|
||||
1999-03-16 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* specific.c (pthread_key_delete): Check th->p_terminated to see
|
||||
if the thread is running.
|
||||
|
||||
1999-02-12 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* Versions (__libc_current_sigrtmin, __libc_current_sigrtmax,
|
||||
|
@ -73,14 +73,15 @@ int pthread_key_delete(pthread_key_t key)
|
||||
}
|
||||
pthread_keys[key].in_use = 0;
|
||||
pthread_keys[key].destr = NULL;
|
||||
/* Set the value of the key to NULL in all running threads, so that
|
||||
if the key is reallocated later by pthread_key_create, its
|
||||
/* Set the value of the key to NULL in all running threads, so
|
||||
that if the key is reallocated later by pthread_key_create, its
|
||||
associated values will be NULL in all threads. */
|
||||
idx1st = key / PTHREAD_KEY_2NDLEVEL_SIZE;
|
||||
idx2nd = key % PTHREAD_KEY_2NDLEVEL_SIZE;
|
||||
th = self;
|
||||
do {
|
||||
if (th->p_specific[idx1st] != NULL)
|
||||
/* If the thread already is terminated don't modify the memory. */
|
||||
if (!th->p_terminated && th->p_specific[idx1st] != NULL)
|
||||
th->p_specific[idx1st][idx2nd] = NULL;
|
||||
th = th->p_nextlive;
|
||||
} while (th != self);
|
||||
|
Reference in New Issue
Block a user