summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaie%kuix.de <devnull@localhost>2008-01-31 16:25:26 +0000
committerkaie%kuix.de <devnull@localhost>2008-01-31 16:25:26 +0000
commit8827709aee565e13dbf160a6fab76aea73193630 (patch)
tree545c931e6c6ea8eb240a7015f9d7ea0e41e1be2b
parent283d46f068796f2b482c0e041546bb06aca439d2 (diff)
downloadnspr-hg-NSPR_HEAD_20080129_MINIBRANCH.tar.gz
Bug 414997, PR_NewThreadPrivateIndex contract is violated by PR_CreateThread implsNSPR_HEAD_20080129_MINIBRANCH
Patch contributed by Wan-Teh Chang r=julien.pierre, r=me Landing on mini branch for ff3b3, intended for this fix only, because trunk is frozen
-rw-r--r--pr/src/pthreads/ptthread.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/pr/src/pthreads/ptthread.c b/pr/src/pthreads/ptthread.c
index 2d4f6a91..1e3bef9b 100644
--- a/pr/src/pthreads/ptthread.c
+++ b/pr/src/pthreads/ptthread.c
@@ -257,6 +257,8 @@ static void *_pt_root(void *arg)
*/
if (PR_FALSE == detached)
{
+ /* Call TPD destructors on this thread. */
+ _PR_DestroyThreadPrivate(thred);
rv = pthread_setspecific(pt_book.key, NULL);
PR_ASSERT(0 == rv);
}
@@ -597,7 +599,7 @@ PR_IMPLEMENT(PRStatus) PR_JoinThread(PRThread *thred)
rv = pthread_detach(&id);
PR_ASSERT(0 == rv);
#endif
- _pt_thread_death(thred);
+ _pt_thread_death_internal(thred, PR_FALSE);
}
else
{