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