On Mon, 2015-03-23 at 14:39 +0100, David Henningsson wrote: > While investigating bug 89672 it was found that pa_thread_mq_done > was called recursively. Regardless of whether the recursion should > be stopped by other means, it seems to make sense to make > pa_thread_mq_done more robust so that it can be called twice > (and even recursively) without harm. > > BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=89672 > Signed-off-by: David Henningsson <david.henningsson at canonical.com> > --- > src/pulsecore/thread-mq.c | 32 +++++++++++++++++++++++--------- > 1 file changed, 23 insertions(+), 9 deletions(-) I would prefer to replace pa_thread_mq_init() and pa_thread_mq_done() with pa_thread_mq_new() and pa_thread_mq_free(), the difference of course being that _new() would return a newly allocated struct instead of modifying a caller-supplied struct. That would allow the bluetooth code to set the thread_mq to NULL when it's not used. -- Tanu