]> git.alsa-project.org Git - alsa-lib.git/commitdiff
dmix plugin: drain - quickfix for the previous patch
authorJaroslav Kysela <perex@perex.cz>
Mon, 20 Mar 2017 07:41:53 +0000 (08:41 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 20 Mar 2017 07:41:53 +0000 (08:41 +0100)
src/pcm/pcm_dmix.c

index de00ea88ed42fa2acaba94120728578b303215c1..c64ae5fc21f9111ed5c00c927aebb249c596d2f2 100644 (file)
@@ -674,16 +674,16 @@ static int __snd_pcm_dmix_drain(snd_pcm_t *pcm)
                        case SND_PCM_STATE_SUSPENDED:
                                err = -ESTRPIPE;
                                goto done;
-                       case SND_PCM_STATE_DRAINING:
-                               if (pcm->mode & SND_PCM_NONBLOCK) {
-                                       err = -EAGAIN;
-                                       goto done;
-                               }
-                               break;
                        default:
                                break;
                        }
                }
+               if (pcm->mode & SND_PCM_NONBLOCK) {
+                       if (dmix->state == SND_PCM_STATE_DRAINING) {
+                               err = -EAGAIN;
+                               goto done;
+                       }
+               }
        } while (dmix->state == SND_PCM_STATE_DRAINING);
 done:
        pcm->stop_threshold = stop_threshold;