On Fri, 07 Apr 2017 15:45:42 +0200, Daniel Baluta wrote: > > On Fri, Apr 7, 2017 at 4:27 PM, Takashi Iwai <tiwai@xxxxxxx> wrote: > > On Fri, 07 Apr 2017 15:20:36 +0200, > > Daniel Baluta wrote: > >> > >> Read can return less then requested bytes, but we treat > >> this as an error. > > > s/read/write here :)). > > > Actually that's the bug -- we should loop the write until it reaches > > to the real error. Once when we get the proper errno, the error > > message via perror() itself will be enough. > > Correct. But I think aplay decided to keep things simple and fail in case > couldn't write all requested bytes. And that's wrong. We should loop instead. > This pattern can be noticed all over the places where write is used. All wrong :) We can implement a simple helper function and replace each write call with it. > Given the fact that write is blocking (meaning that it must write > at least one byte until return) this should work most of the time, > excepting corner cases like disk full, etc. Yes, and such corner cases must be handled properly, too -- in the end, it's what you wanted to achieve by your patch, but into a different direction. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel