Heya!
We shouldn't be passing the main loop object to the pa_context while that loop is running and not locked. Push the main loop startup after we created the main loop. --- pulse/pulse.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/pulse/pulse.c b/pulse/pulse.c index 617851e..022ca55 100644 --- a/pulse/pulse.c +++ b/pulse/pulse.c @@ -188,9 +188,6 @@ snd_pulse_t *pulse_new(void) if (!p->mainloop) goto fail;
- if (pa_threaded_mainloop_start(p->mainloop) < 0) - goto fail; - if (pa_get_binary_name(proc, sizeof(proc))) snprintf(buf, sizeof(buf), "ALSA plug-in [%s]", pa_path_get_filename(proc)); @@ -204,6 +201,9 @@ snd_pulse_t *pulse_new(void)
pa_context_set_state_callback(p->context, context_state_cb, p);
+ if (pa_threaded_mainloop_start(p->mainloop) < 0) + goto fail; + return p;
fail: