From owner-cvs-src@FreeBSD.ORG Sun May 25 00:58:23 2003 Return-Path: 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 58F3837B401; Sun, 25 May 2003 00:58:23 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0B13043F85; Sun, 25 May 2003 00:58:23 -0700 (PDT) (envelope-from mtm@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4P7wM0U053530; Sun, 25 May 2003 00:58:22 -0700 (PDT) (envelope-from mtm@repoman.freebsd.org) Received: (from mtm@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4P7wMlf053529; Sun, 25 May 2003 00:58:22 -0700 (PDT) Message-Id: <200305250758.h4P7wMlf053529@repoman.freebsd.org> From: Mike Makonnen Date: Sun, 25 May 2003 00:58:22 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/lib/libthr/thread thr_kern.c thr_private.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 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: Sun, 25 May 2003 07:58:23 -0000 mtm 2003/05/25 00:58:22 PDT FreeBSD src repository Modified files: lib/libthr/thread thr_kern.c thr_private.h Log: The libthr code makes use of higher-level primitives (pthread_mutex_t and pthread_cond_t) internaly in addition to the low-level spinlock_t. The garbage collector mutex and condition variable are two such examples. This might lead to critical sections nested within critical sections. Implement a reference counting mechanism so that signals are masked only on the first entry and unmasked on the last exit. I'm not sure I like the idea of nested critical sections, but if the library is going to use the pthread primitives it might be necessary. Approved by: re/blanket libthr Revision Changes Path 1.8 +13 -0 src/lib/libthr/thread/thr_kern.c 1.10 +1 -0 src/lib/libthr/thread/thr_private.h