[alsa-devel] [PATCH v2 2/6] ALSA: compress: Add function to indicate the stream has gone bad

Charles Keepax ckeepax at opensource.wolfsonmicro.com
Fri Apr 8 12:58:24 CEST 2016


On Thu, Apr 07, 2016 at 11:07:12PM +0000, Koul, Vinod wrote:
> On Thu, 2016-04-07 at 09:28 +0100, Charles Keepax wrote:
> > On Thu, Apr 07, 2016 at 12:40:03AM +0000, Koul, Vinod wrote:
> > > On Wed, 2016-04-06 at 11:21 +0100, Charles Keepax wrote:
> > > Also if we do this, then why should pointer return error?
> > 
> > The first patch in the chain could indeed be changed to have
> > pointer calls not return an error status. But I feel that would
> > be making the code worse. Ok the situation I am most interested
> > here indicates a failure of the stream, but its a very small leap
> > to imagine situations where pointer fails temporarily and the
> > stream is still good.
> 
> The point here is that we are anyway propagating error by invoking the
> new API so why return error here.
> Btw can you please explain how this makes code worse?

So if I make pointer return void, the two possible error paths
are either return zero available data or call xrun. Xrun will
stop the stream so I only want to do that if I think the stream
is dead. But that likely leaves various catagories of errors I
don't want to do that for. Returning zero on the other hand hides
the error so no one will ever know an error occurs (well except by
inspecting the kernel log). It feels to me like someone is going
to hit a case where they need to do that at some point. So
removing the return type seems wrong, but at the moment you have
two functions that return ints but don't propogate their values
though which just looks odd in the code.

Thanks,
Charles


More information about the Alsa-devel mailing list