Date: Wed, 27 Nov 2024 17:33:29 +0200 From: Andriy Gapon <avg@FreeBSD.org> To: John Baldwin <jhb@FreeBSD.org>, Christos Margiolis <christos@freebsd.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 5317480967bf - main - sound: Remove CHN_F_SLEEPING Message-ID: <c726294e-43e8-4ad8-8cf4-8357aab35b22@FreeBSD.org> In-Reply-To: <4234bd4a-29a0-4f95-bebb-d745c101cd25@FreeBSD.org> References: <202411261448.4AQEmw7Y084208@gitrepo.freebsd.org> <77c4113c-c023-4db3-826a-83be4e9baa42@FreeBSD.org> <vvqbxb25dikutghe4pknggpu2mely3syk44sfbk4zpweymzvuz@pia6d26v6a2t> <4234bd4a-29a0-4f95-bebb-d745c101cd25@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 27/11/2024 17:12, John Baldwin wrote: > On 11/26/24 12:17, Christos Margiolis wrote: >> John Baldwin wrote: >>> I'm not super excited about reading cv_waiters directly. Generally speaking >>> 'struct cv' is opaque to the rest of the kernel. Maybe add a little inline >>> routine or macro cv_waiters() that returns this value instead? Then it can >>> be documented in condvar.9 along with the caveats about when it is safe to >>> use. >> >> I see we already have cv_wmesg() in sys/sys/condvar.h to access >> cv_description. Maybe we could add a cv_waiters() macro in there as >> well? > > Yes, that is where I would add it. Perhaps, cv_waiters should be left as an implementation detail and an explicit counter should be added in the sound driver code as a replacement for CHN_F_SLEEPING flag? And for pre-existing checks of cv_waiters too. That sounds a bit redundant but all code that needs to check if something is waiting does it that way. cv_waiters is accessed only in kern_condvar.c, naturally, and in the sound driver. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c726294e-43e8-4ad8-8cf4-8357aab35b22>