From owner-cvs-src@FreeBSD.ORG Thu Jan 5 13:51:29 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C677B16A41F; Thu, 5 Jan 2006 13:51:29 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 36D6543D4C; Thu, 5 Jan 2006 13:51:23 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k05DpMSj010580; Thu, 5 Jan 2006 13:51:22 GMT (envelope-from davidxu@repoman.freebsd.org) Received: (from davidxu@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k05DpMjX010579; Thu, 5 Jan 2006 13:51:22 GMT (envelope-from davidxu) Message-Id: <200601051351.k05DpMjX010579@repoman.freebsd.org> From: David Xu Date: Thu, 5 Jan 2006 13:51:22 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/lib/libthr/thread thr_create.c thr_exit.c thr_list.c thr_private.h thr_resume_np.c thr_sig.c thr_suspend_np.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Jan 2006 13:51:30 -0000 davidxu 2006-01-05 13:51:22 UTC FreeBSD src repository Modified files: lib/libthr/thread thr_create.c thr_exit.c thr_list.c thr_private.h thr_resume_np.c thr_sig.c thr_suspend_np.c Log: Refine thread suspension code, now thread suspension is a blockable operation, the caller is blocked util target threads are really suspended, also avoid suspending a thread when it is holding a critical lock. Fix a bug in _thr_ref_delete which tests a never set flag. Revision Changes Path 1.26 +53 -29 src/lib/libthr/thread/thr_create.c 1.20 +8 -1 src/lib/libthr/thread/thr_exit.c 1.5 +10 -7 src/lib/libthr/thread/thr_list.c 1.52 +16 -3 src/lib/libthr/thread/thr_private.h 1.9 +0 -1 src/lib/libthr/thread/thr_resume_np.c 1.15 +50 -17 src/lib/libthr/thread/thr_sig.c 1.4 +40 -10 src/lib/libthr/thread/thr_suspend_np.c