Before this commit, compilation of `pcm_share` causes warnings "ignoring return value" for several `read` and `write` operations: ~~~~ pcm_share.c: In function '_snd_pcm_share_missing': pcm_share.c:293:5: warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result] read(share->slave_socket, buf, 1); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <...> ~~~~ However, ignoring return values in these use-cases is safe and optimal, because `read` and `write` operations are executed upon descriptors, created with `socketpair()` and `pipe()`. This commit fixes the warnings by introducing the return value with the attribute `unused` (for details, see [1]). The macro, used in this commit, is defined at `global.h`: ~~~~ define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) ~~~~ I explicitly checked the objdump: this commit doesn't change the machine code, related to the modified C code lines. The execution performance is not affected. [1] https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/Common-Variable-Attributes.html Signed-off-by: Kirill Marinushkin <kmarinushkin@xxxxxxxxxxx> --- src/pcm/pcm_share.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c index 5a540c4f..9592e003 100644 --- a/src/pcm/pcm_share.c +++ b/src/pcm/pcm_share.c @@ -287,17 +287,18 @@ static snd_pcm_uframes_t _snd_pcm_share_missing(snd_pcm_t *pcm) update_poll: if (ready != share->ready) { + int un ATTRIBUTE_UNUSED; char buf[1]; if (pcm->stream == SND_PCM_STREAM_PLAYBACK) { if (ready) - read(share->slave_socket, buf, 1); + un = read(share->slave_socket, buf, 1); else - write(share->client_socket, buf, 1); + un = write(share->client_socket, buf, 1); } else { if (ready) - write(share->slave_socket, buf, 1); + un = write(share->slave_socket, buf, 1); else - read(share->client_socket, buf, 1); + un = read(share->client_socket, buf, 1); } share->ready = ready; } @@ -404,8 +405,9 @@ static void *snd_pcm_share_thread(void *data) err = poll(pfd, 2, -1); Pthread_mutex_lock(&slave->mutex); if (pfd[0].revents & POLLIN) { + int un ATTRIBUTE_UNUSED; char buf[1]; - read(pfd[0].fd, buf, 1); + un = read(pfd[0].fd, buf, 1); } } else { slave->polling = 0; -- 2.13.6 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel