summaryrefslogtreecommitdiff
path: root/lib/libpthread/thread/thr_find_thread.c
diff options
context:
space:
mode:
authorDaniel Eischen <deischen@FreeBSD.org>2003-04-28 23:56:12 +0000
committerDaniel Eischen <deischen@FreeBSD.org>2003-04-28 23:56:12 +0000
commit55613576f5c40d62fecb4ab76f012917fc399c3e (patch)
tree90f4ce3660289c401aab5d0a2c4f105e5aa3e877 /lib/libpthread/thread/thr_find_thread.c
parent6a9ccd81fefc8a10772034a7e4955fccdacc347f (diff)
Notes
Diffstat (limited to 'lib/libpthread/thread/thr_find_thread.c')
-rw-r--r--lib/libpthread/thread/thr_find_thread.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/libpthread/thread/thr_find_thread.c b/lib/libpthread/thread/thr_find_thread.c
index b5cae665fbdf7..0c813db6ad54a 100644
--- a/lib/libpthread/thread/thr_find_thread.c
+++ b/lib/libpthread/thread/thr_find_thread.c
@@ -85,6 +85,9 @@ _thr_ref_delete(struct pthread *curthread, struct pthread *thread)
KSE_LOCK_ACQUIRE(curthread->kse, &_thread_list_lock);
thread->refcount--;
curthread->critical_count--;
+ if ((thread->refcount == 0) &&
+ (thread->flags & THR_FLAGS_GC_SAFE) != 0)
+ THR_GCLIST_ADD(thread);
KSE_LOCK_RELEASE(curthread->kse, &_thread_list_lock);
_kse_critical_leave(crit);
}