[vlc-commits] PulseAudio: missing lock
Rémi Denis-Courmont
git at videolan.org
Thu Aug 11 16:26:25 CEST 2011
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Aug 11 16:35:12 2011 +0300| [c72c363f0344ac9bfb280fd4c48299c862561eff] | committer: Rémi Denis-Courmont
PulseAudio: missing lock
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c72c363f0344ac9bfb280fd4c48299c862561eff
---
modules/audio_output/pulse.c | 14 ++++++++------
src/pulse/mainloop.c | 2 ++
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/modules/audio_output/pulse.c b/modules/audio_output/pulse.c
index 24c7193..f1af097 100644
--- a/modules/audio_output/pulse.c
+++ b/modules/audio_output/pulse.c
@@ -823,18 +823,20 @@ static void Close (vlc_object_t *obj)
var_DelCallback (aout, "audio-device", StreamMove, s);
var_Destroy (aout, "audio-device");
+ vlc_pa_lock ();
pa_stream_disconnect(s);
/* Clear all callbacks */
pa_stream_set_state_callback(s, NULL, NULL);
- pa_stream_set_latency_update_callback(s, NULL, aout);
- pa_stream_set_moved_callback(s, NULL, aout);
- pa_stream_set_overflow_callback(s, NULL, aout);
- pa_stream_set_started_callback(s, NULL, aout);
- pa_stream_set_suspended_callback(s, NULL, aout);
- pa_stream_set_underflow_callback(s, NULL, aout);
+ pa_stream_set_latency_update_callback(s, NULL, NULL);
+ pa_stream_set_moved_callback(s, NULL, NULL);
+ pa_stream_set_overflow_callback(s, NULL, NULL);
+ pa_stream_set_started_callback(s, NULL, NULL);
+ pa_stream_set_suspended_callback(s, NULL, NULL);
+ pa_stream_set_underflow_callback(s, NULL, NULL);
pa_stream_unref(s);
+ vlc_pa_unlock ();
}
vlc_pa_disconnect(obj, ctx);
diff --git a/src/pulse/mainloop.c b/src/pulse/mainloop.c
index f1d1d77..8ed7bb5 100644
--- a/src/pulse/mainloop.c
+++ b/src/pulse/mainloop.c
@@ -262,9 +262,11 @@ void vlc_pa_disconnect (vlc_object_t *obj, pa_context *ctx)
{
pa_threaded_mainloop *mainloop = vlc_pa_mainloop;
+ vlc_pa_lock ();
pa_context_disconnect (ctx);
pa_context_set_state_callback (ctx, NULL, NULL);
pa_context_unref (ctx);
+ vlc_pa_unlock ();
vlc_pa_mainloop_deinit (mainloop);
(void) obj;
More information about the vlc-commits
mailing list