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