From owner-freebsd-arch@FreeBSD.ORG Fri Apr 16 21:47:08 2004 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 79A5616A4CE; Fri, 16 Apr 2004 21:47:08 -0700 (PDT) Received: from khavrinen.lcs.mit.edu (khavrinen.lcs.mit.edu [128.30.28.20]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2FBD643D1F; Fri, 16 Apr 2004 21:47:08 -0700 (PDT) (envelope-from wollman@khavrinen.lcs.mit.edu) Received: from khavrinen.lcs.mit.edu (localhost [IPv6:::1]) by khavrinen.lcs.mit.edu (8.12.9/8.12.9) with ESMTP id i3H4l6XX021994 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK CN=khavrinen.lcs.mit.edu issuer=SSL+20Client+20CA); Sat, 17 Apr 2004 00:47:07 -0400 (EDT) (envelope-from wollman@khavrinen.lcs.mit.edu) Received: (from wollman@localhost) by khavrinen.lcs.mit.edu (8.12.9/8.12.9/Submit) id i3H4l6Hn021993; Sat, 17 Apr 2004 00:47:06 -0400 (EDT) (envelope-from wollman) Date: Sat, 17 Apr 2004 00:47:06 -0400 (EDT) From: Garrett Wollman Message-Id: <200404170447.i3H4l6Hn021993@khavrinen.lcs.mit.edu> To: green@freebsd.org X-Newsgroups: mit.lcs.mail.freebsd-arch In-Reply-To: <200404170330.i3H3Ul0t032543@green.homeunix.org> References: Organization: MIT Laboratory for Computer Science X-Spam-Score: -9.9 () IN_REP_TO,REFERENCES X-Scanned-By: MIMEDefang 2.37 cc: arch@freebsd.org Subject: Re: kqueue giant-locking (&kq_Giant, locking) X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2004 04:47:08 -0000 In article <200404170330.i3H3Ul0t032543@green.homeunix.org> you write: >I can't imagine a well-designed applications has kqueues of kqueues. I can in about five seconds' worth of thought. Suppose you have library X. It accomplishes some task asynchronously (it doesn't matter what or how), and provides a descriptor that the calling application must poll for completion. Now use that library into an application that has its own event loop. This is one of the specific motivating examples behind doing kqueue rather than simply extending poll() or select(). Please go and read the papers before you continue down this path. -GAWollman