From d9be3e3556e7eb8d732ab937492ddbd755df82c4 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 23 Aug 2005 12:57:48 +0000 Subject: [PATCH] pcm.c test / example - Added EINTR handling --- test/pcm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/pcm.c b/test/pcm.c index 95e27bf4..b461b118 100644 --- a/test/pcm.c +++ b/test/pcm.c @@ -201,7 +201,7 @@ static int xrun_recovery(snd_pcm_t *handle, int err) printf("Can't recovery from underrun, prepare failed: %s\n", snd_strerror(err)); return 0; } else if (err == -ESTRPIPE) { - while ((err = snd_pcm_resume(handle)) == -EAGAIN) + while ((err = snd_pcm_resume(handle)) == -EAGAIN || err == -EINTR) sleep(1); /* wait until the suspend flag is released */ if (err < 0) { err = snd_pcm_prepare(handle); @@ -231,7 +231,7 @@ static int write_loop(snd_pcm_t *handle, cptr = period_size; while (cptr > 0) { err = snd_pcm_writei(handle, ptr, cptr); - if (err == -EAGAIN) + if (err == -EAGAIN || err == -EINTR) continue; if (err < 0) { if (xrun_recovery(handle, err) < 0) { @@ -661,7 +661,7 @@ static int direct_write_loop(snd_pcm_t *handle, cptr = period_size; while (cptr > 0) { err = snd_pcm_mmap_writei(handle, ptr, cptr); - if (err == -EAGAIN) + if (err == -EAGAIN || err == -EINTR) continue; if (err < 0) { if (xrun_recovery(handle, err) < 0) { -- 2.47.1