r_submix: Fix logspam on pipe corruption
Prevent logging an error message on every attempt to write if the FIFO backing up the MonoPipe got corrupted. This condition can be detected by checking for -EIO error code. Bug: 74067530 Test: make audio_utils_fifo_base::mIsShutdown to be set by default, run r_submix_tests and observe logcat Change-Id: I5d67997e902e834f04c10f9ffb39b16cba9c5739
This commit is contained in:
parent
1df8a0039f
commit
ab5b51838c
1 changed files with 5 additions and 0 deletions
|
@ -821,6 +821,11 @@ static ssize_t out_write(struct audio_stream_out *stream, const void* buffer,
|
|||
|
||||
written_frames = 0;
|
||||
return 0;
|
||||
} else if (written_frames == -EIO) {
|
||||
// receiving -EIO means that the underlying FIFO has shut itself down
|
||||
// due to reader/writer indices corruption. This state is irreversible,
|
||||
// so shut down the monopipe. It will be destroyed on the next call to 'write.'
|
||||
sink->shutdown(true);
|
||||
} else {
|
||||
// write() returned UNDERRUN or WOULD_BLOCK, retry
|
||||
ALOGE("out_write() write to pipe returned unexpected %zd", written_frames);
|
||||
|
|
Loading…
Reference in a new issue