cvs commit: src/lib/libthr/thread thr_exit.c thr_join.c
Mike Makonnen
mtm at FreeBSD.org
Wed Oct 13 04:42:21 PDT 2004
mtm 2004-10-13 11:42:20 UTC
FreeBSD src repository
Modified files:
lib/libthr/thread thr_exit.c thr_join.c
Log:
1. Now that it's a thread's state is changed from within the kernel, where
no userland locks are heald, the dead thread lock can no longer protect
access to it. Therefore, instead of using an if (!dead)...else clause
after walking the active threads list test the thread pointer before
deciding not to walk the dead threads list. If the thread pointer is null
it means it was not found in the active threads list and the dead threads
list should be checked.
2. Do not free the stack of a thread that is not marked dead. This is the
2nd and final part of eliminating the race to free a thread's stack.
MFC after: 3 days
Revision Changes Path
1.16 +2 -1 src/lib/libthr/thread/thr_exit.c
1.15 +8 -3 src/lib/libthr/thread/thr_join.c
More information about the cvs-src
mailing list