Questionable code in sys/dev/sound/pcm/channel.c

Mathew Kanner mat at cnd.mcgill.ca
Tue Jul 27 08:20:43 PDT 2004


On Jul 26, Conrad J. Sabatier wrote:
> 
> On 26-Jul-2004 Don Lewis wrote:
> > 
> > I just looked at the code some more.  With timeout hardwired to 1,
> > count can never go negative.  The code initializes count to hz, and
> > then decrements it whenever chn_sleep() returns EWOULDBLOCK, and
> > re-initializes count to hz if chn_sleep() returns zero.  With timeout
> > hardwired to 1, count should only be able to decrement to zero if
> > chn_sleep() returns EWOULDBLOCK hz times in a row, which means that
> > nothing could be stuffed into the buffer for one second, which seems
> > like a long time ...
> > 
> > I suspect that with your change the write() call is returning a 0 and
> > the player software is doing a retry that succeeds (or this might be
> > audible as a skip).
> 
> Hmmm.  Well, one thing's for certain: you've obviously managed to
> discern more about what's going on in this code than me!  :-)
> 
> It would be nice to hear from our sound maintainers on this issue. 
> They've been rather...quiet lately.  :-)

	Who are the sound maintainers ?  :) My internet is supposed to
be re-connected on Friday so I will start to be more active then.
However, my knowledge of internals of PCM is somewhat limited.

	--Mat

-- 
	sig machine broken


More information about the freebsd-current mailing list