]> code.delx.au - pulseaudio/commitdiff
alsa: Fix assertion on mmap_write (triggered via a52 plugin)
authorColin Guthrie <cguthrie@mandriva.org>
Sun, 6 Jun 2010 20:19:34 +0000 (21:19 +0100)
committerColin Guthrie <cguthrie@mandriva.org>
Tue, 13 Jul 2010 21:08:23 +0000 (22:08 +0100)
src/modules/alsa/alsa-sink.c

index 35a806c8447d48bad2395acaa2c45f9a5537eba2..2995c3cebd4d5a6cb520d5efa64c8f985058dff5 100644 (file)
@@ -610,6 +610,9 @@ static int mmap_write(struct userdata *u, pa_usec_t *sleep_usec, pa_bool_t polle
 
             if (PA_UNLIKELY((sframes = snd_pcm_mmap_commit(u->pcm_handle, offset, frames)) < 0)) {
 
+                if (!after_avail && (int) sframes == -EAGAIN)
+                    break;
+
                 if ((r = try_recover(u, "snd_pcm_mmap_commit", (int) sframes)) == 0)
                     continue;