diff options
author | Neal H. Walfield <neal@gnu.org> | 2005-05-02 22:00:34 +0000 |
---|---|---|
committer | Neal H. Walfield <neal@gnu.org> | 2005-05-02 22:00:34 +0000 |
commit | 81cb5487d08c59fca0190cf03a07bdf45fe90ea8 (patch) | |
tree | 7a90f6c01817107977e96161ba74f48616b7be12 /pthread/pt-alloc.c | |
parent | d3259802444358fa6f917c7d2a049fc8fcc98cc0 (diff) |
libpthread/
2005-05-02 Neal H. Walfield <neal@gnu.org>
* pthread/pt-alloc.c (__pthread_alloc): Set the thread id to the
table index plus one.
* pthread/pt-internal.h (__pthread_getid): Index __pthread_threads
using THREAD - 1, not THREAD.
(__pthread_setid): Likewise.
* pthread/pt-create.c (__pthread_create_internal): Likewise.
* sysdeps/generic/pt-mutex-trylock.c (__pthread_mutex_trylock):
When returning EBUSY, don't forget to first unlock MUTEX->__HELD.
Diffstat (limited to 'pthread/pt-alloc.c')
-rw-r--r-- | pthread/pt-alloc.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/pthread/pt-alloc.c b/pthread/pt-alloc.c index 5cdc85d..e8d3c03 100644 --- a/pthread/pt-alloc.c +++ b/pthread/pt-alloc.c @@ -1,5 +1,5 @@ /* Allocate a new thread structure. - Copyright (C) 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -139,10 +139,10 @@ __pthread_alloc (struct __pthread **pthread) if (__pthread_num_threads < __pthread_max_threads) { - /* We have a free slot. Use the slot number as - the thread ID for the new thread. */ - new->thread = __pthread_num_threads++; - __pthread_threads[new->thread] = NULL; + /* We have a free slot. Use the slot number plus one as the + thread ID for the new thread. */ + new->thread = 1 + __pthread_num_threads++; + __pthread_threads[new->thread - 1] = NULL; pthread_rwlock_unlock (&__pthread_threads_lock); @@ -203,8 +203,8 @@ __pthread_alloc (struct __pthread **pthread) __pthread_threads = threads; /* And allocate ourselves one of the newly created slots. */ - new->thread = __pthread_num_threads++; - __pthread_threads[new->thread] = NULL; + new->thread = 1 + __pthread_num_threads++; + __pthread_threads[new->thread - 1] = NULL; pthread_rwlock_unlock (&__pthread_threads_lock); |