Date: Sat, 12 Jun 2004 15:33:56 -0400 (EDT) From: Robert Watson <rwatson@freebsd.org> To: Poul-Henning Kamp <phk@phk.freebsd.dk> Cc: Julian Elischer <julian@elischer.org> Subject: Re: reference counting.. continued.. Message-ID: <Pine.NEB.3.96L.1040612153110.90086I-100000@fledge.watson.org> In-Reply-To: <57800.1086807537@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 9 Jun 2004, Poul-Henning Kamp wrote: > I am not in favour of a dedicated API for refcounts. > > A dedicated API works if the refcount is a detached property of the > object, and that is not normally the case outside OO+GC implementations. > > Our reference counts will almost invariably be integral properties of > our objects and therefore has to interact with the remaining object > locking. I don't have a strong feeling about the general need for a refcount API, but I can confirm that many of the interesting objects in the kernel wouldn't lend themselves to such an API. There are many cases where we'll want to protect the reference count using an existing lock, in which case locking built into the reference count API becomes a liability. Socket reference counting is one example of this: in some ways, it's a general purpose reference count, but the GC behavior is specific to sockets and depends on additional uncounted references from file descriptors and the prototocol layer. That said, I think making sure people get reference counts right is important: at the very least, I think it would be useful to have a refcount(9) man page with a well thought out example of a simple reference count implementation, or a pointer at such an implementation (ucred isn't bad). Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Senior Research Scientist, McAfee Research
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1040612153110.90086I-100000>
