diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-05-16 22:09:32 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-05-16 22:09:32 +0000 |
commit | 7ac5b8e2fae145766821d141cf892bbfa50d6618 (patch) | |
tree | b72d74efac9467f44f10503be7abd9531bb4f370 | |
parent | bc58c14e334a40141d84b7951c5875cef96b1a2b (diff) | |
download | glibc-7ac5b8e2fae145766821d141cf892bbfa50d6618.tar.gz glibc-7ac5b8e2fae145766821d141cf892bbfa50d6618.tar.xz glibc-7ac5b8e2fae145766821d141cf892bbfa50d6618.zip |
Update.
* pthread_join.c (pthread_join): Set tid field of the joined thread to -1. This isn't necessary but helps to recognize some error conditions with almost no cost. * allocatestack.c (FREE_P): Also negative values indicate an unused stack.
-rw-r--r-- | nptl/ChangeLog | 7 | ||||
-rw-r--r-- | nptl/allocatestack.c | 2 | ||||
-rw-r--r-- | nptl/pthread_join.c | 3 |
3 files changed, 11 insertions, 1 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index e63c71c841..60b03f764d 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,12 @@ 2003-05-16 Ulrich Drepper <drepper@redhat.com> + * pthread_join.c (pthread_join): Set tid field of the joined + thread to -1. This isn't necessary but helps to recognize some + error conditions with almost no cost. + + * allocatestack.c (FREE_P): Also negative values indicate an + unused stack. + * unwind.c: Include <unistd.h>. 2003-05-14 Ulrich Drepper <drepper@redhat.com> diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c index 95ee992a18..9653b62cab 100644 --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c @@ -111,7 +111,7 @@ static unsigned int nptl_ncreated; /* Check whether the stack is still used or not. */ -#define FREE_P(descr) ((descr)->tid == 0) +#define FREE_P(descr) ((descr)->tid <= 0) /* We create a double linked list of all cache entries. Double linked diff --git a/nptl/pthread_join.c b/nptl/pthread_join.c index f77c2c9f98..f94128dd96 100644 --- a/nptl/pthread_join.c +++ b/nptl/pthread_join.c @@ -93,6 +93,9 @@ pthread_join (threadid, thread_return) pthread_cleanup_pop (0); + /* We mark the thread as terminated and as joined. */ + pd->tid = -1; + /* Store the return value if the caller is interested. */ if (thread_return != NULL) *thread_return = pd->result; |