Re: alsa problem with stopping playback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



To elaborate on my last message, as is obvious from the patch, the bug I mentioned is in dmix, so, if you aren't using dmix, then it isn't what you're running into. The library tries to discard a semaphore that it has previously locked, but, if it is unable to discard it (as could be the case if it is owned by a process running under a different user), then it never releases it, causing deadlock. So running speech-dispatcher as your normal user should be another work-around.

-- Mike Gorse / AIM:linvortex / http://mgorse.freeshell.org --

On Sat, 22 Dec 2007, Mike Gorse wrote:

Hi Rynhardt,

I ran into a similar problem with eflite and speech-dispatcher a while ago. There is a bug in alsa-lib that you might be running into. You could try building alsa-lib with the following patch:

--- alsa-lib-1.0.15/src/pcm/pcm_dmix.c	2007-10-15 04:45:26.000000000 -0400
+++ alsa-lib-hg20071222/src/pcm/pcm_dmix.c 2007-12-10 20:00:04.000000000 -0500
@@ -652,9 +614,10 @@
 	 if (dmix->client)
 	 	snd_pcm_direct_client_discard(dmix);
 	shm_sum_discard(dmix);
-	if (snd_pcm_direct_shm_discard(dmix))
-		snd_pcm_direct_semaphore_discard(dmix);
-	else
+	if (snd_pcm_direct_shm_discard(dmix)) {
+		if (snd_pcm_direct_semaphore_discard(dmix))
+ snd_pcm_direct_semaphore_up(dmix, DIRECT_IPC_SEM_CLIENT);
+	} else
	 	snd_pcm_direct_semaphore_up(dmix, DIRECT_IPC_SEM_CLIENT);
	 free(dmix->bindings);
	 pcm->private_data = NULL;

or just downloading a recent alsa-lib snapshot from ftp://ftp.suse.de/pub/projects/alsa/snapshot/lib and building it (the fix is in their hg tree, but it was made post-1.0.15, so there is no release that includes it yet.)

_______________________________________________
Blinux-list mailing list
Blinux-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/blinux-list

[Index of Archives]     [Linux Speakup]     [Fedora]     [Linux Kernel]     [Yosemite News]     [Big List of Linux Books]