summaryrefslogtreecommitdiff
path: root/pthread/pt-alloc.c
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@gnu.org>2005-05-02 22:00:34 +0000
committerNeal H. Walfield <neal@gnu.org>2005-05-02 22:00:34 +0000
commit81cb5487d08c59fca0190cf03a07bdf45fe90ea8 (patch)
tree7a90f6c01817107977e96161ba74f48616b7be12 /pthread/pt-alloc.c
parentd3259802444358fa6f917c7d2a049fc8fcc98cc0 (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.c14
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);