The problem, of course, is that the process() function
must not wait.
Perhaps you can find a way to use pthread_mutex_trylock(), instead.
--
That's actually how I was doing it. For some reason even trylock seemed
to time out. I have not got any zomby messages since than, but I have
not been running it for a length of time at the moment because I am
heavily working on something right now and testing it's functionality.
The zomby would happen intermittently without any clue why. It *seemed*
to have something to do when I used LADSPA plugins, and it was the
LADSPA plugin code that used pthread_mutex functions. This is because
it is possible to alter the list from the GUI thread while the audio
thread is running, and if it were to switch back to the audio thread and
the list had been altered at that point it would crash obviously because
the pointer had been invalidated.
Since I changed it it has not given me a zomby message yet.
I will run it for a while to see if it becomes a zomby again. Only time
will tell.