Ya está Xavi, ya sé lo que pasaba. Hay un problema en la librería
alogg que reproduce la música. Resulta que cuando una canción finaliza,
alogg no destruye el
thread que ha creado para la reproducción. Como es la forma que tengo de comprobar que hay música sonando, al ver que el
thread sigue vivo entonces fuerzo a parar la canción pero, claro, ya está parada. Un mútex se intenta liberar dos veces y de ahí el cuelgue.
El caso es que
alogg tiene una estructura de datos
(alogg_thread) que tiene una variable stop que indica cuando ha finalizado la reproducción, pero
curiosamente, no es accesible por el programador que la usa. Total que la he tenido que reparchear. Ya van dos parches. ¿Quién me mandaría escoger esta librería?
Lo que está claro, es que si no dejáis que la música llegue al final, no se va a colgar.

Pero bueno, creo que subiré la corrección y así lo probáis.