From: David Henningsson Date: Mon, 3 May 2010 09:41:47 +0000 (+0200) Subject: jack: Prevent crash on jack server shutdown X-Git-Tag: submit/2.0-panda/20130828.192557~1008 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f081c152f3d5f6a70edc6b7369445229b4f6a1b8;p=profile%2Fivi%2Fpulseaudio-panda.git jack: Prevent crash on jack server shutdown --- diff --git a/src/modules/jack/module-jack-sink.c b/src/modules/jack/module-jack-sink.c index 4a0d384..08a8bef 100644 --- a/src/modules/jack/module-jack-sink.c +++ b/src/modules/jack/module-jack-sink.c @@ -147,6 +147,7 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse pa_sample_spec ss; /* Humm, we're not RUNNING, hence let's write some silence */ + /* This can happen if we're paused, or during shutdown (when we're unlinked but jack is still running). */ ss = u->sink->sample_spec; ss.channels = 1; @@ -480,12 +481,12 @@ void pa__done(pa_module*m) { if (!(u = m->userdata)) return; - if (u->client) - jack_client_close(u->client); - if (u->sink) pa_sink_unlink(u->sink); + if (u->client) + jack_client_close(u->client); + if (u->thread) { pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL); pa_thread_free(u->thread); diff --git a/src/modules/jack/module-jack-source.c b/src/modules/jack/module-jack-source.c index 2d152b3..6b12840 100644 --- a/src/modules/jack/module-jack-source.c +++ b/src/modules/jack/module-jack-source.c @@ -425,12 +425,12 @@ void pa__done(pa_module*m) { if (!(u = m->userdata)) return; - if (u->client) - jack_client_close(u->client); - if (u->source) pa_source_unlink(u->source); + if (u->client) + jack_client_close(u->client); + if (u->thread) { pa_asyncmsgq_send(u->thread_mq.inq, NULL, PA_MESSAGE_SHUTDOWN, NULL, 0, NULL); pa_thread_free(u->thread);