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.)