]> git.alsa-project.org Git - alsa-utils.git/commitdiff
aplay/arecord: Add more in_aborting checks to read/write loops
authorJaroslav Kysela <perex@perex.cz>
Fri, 13 Jun 2014 08:52:26 +0000 (10:52 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 13 Jun 2014 08:52:26 +0000 (10:52 +0200)
Reported-by: Sergey <sergemp@mail.ru>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
aplay/aplay.c

index 33a8ed5598f5c63fe2710d18e9f22934096a9654..7d1c16e99606a15f439ee900f588e337e5517cff 100644 (file)
@@ -1921,7 +1921,7 @@ static ssize_t pcm_write(u_char *data, size_t count)
                count = chunk_size;
        }
        data = remap_data(data, count);
-       while (count > 0) {
+       while (count > 0 && !in_aborting) {
                if (test_position)
                        do_test_position();
                check_stdin();
@@ -1964,7 +1964,7 @@ static ssize_t pcm_writev(u_char **data, unsigned int channels, size_t count)
                count = chunk_size;
        }
        data = remap_datav(data, count);
-       while (count > 0) {
+       while (count > 0 && !in_aborting) {
                unsigned int channel;
                void *bufs[channels];
                size_t offset = result;
@@ -2013,7 +2013,7 @@ static ssize_t pcm_read(u_char *data, size_t rcount)
                count = chunk_size;
        }
 
-       while (count > 0) {
+       while (count > 0 && !in_aborting) {
                if (test_position)
                        do_test_position();
                check_stdin();
@@ -2052,7 +2052,7 @@ static ssize_t pcm_readv(u_char **data, unsigned int channels, size_t rcount)
                count = chunk_size;
        }
 
-       while (count > 0) {
+       while (count > 0 && !in_aborting) {
                unsigned int channel;
                void *bufs[channels];
                size_t offset = result;