Author: davidxu Date: Wed Sep 1 03:55:10 2010 New Revision: 212078 URL: http://svn.freebsd.org/changeset/base/212078
Log: pthread_atfork should acquire writer lock and protect the code with critical region. Modified: head/lib/libthr/thread/thr_fork.c Modified: head/lib/libthr/thread/thr_fork.c ============================================================================== --- head/lib/libthr/thread/thr_fork.c Wed Sep 1 03:11:21 2010 (r212077) +++ head/lib/libthr/thread/thr_fork.c Wed Sep 1 03:55:10 2010 (r212078) @@ -89,9 +89,11 @@ _pthread_atfork(void (*prepare)(void), v af->prepare = prepare; af->parent = parent; af->child = child; - _thr_rwl_rdlock(&_thr_atfork_lock); + THR_CRITICAL_ENTER(curthread); + _thr_rwl_wrlock(&_thr_atfork_lock); TAILQ_INSERT_TAIL(&_thr_atfork_list, af, qe); _thr_rwl_unlock(&_thr_atfork_lock); + THR_CRITICAL_LEAVE(curthread); return (0); } _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"