teach module-rescue-streams and module-always-sink to not do anything if we are shutting down anyway

This commit is contained in:
Lennart Poettering 2009-01-23 22:30:02 +01:00
parent a3162a396e
commit 967c17a190
2 changed files with 17 additions and 1 deletions

View file

@ -100,6 +100,10 @@ static pa_hook_result_t put_hook_callback(pa_core *c, pa_sink *sink, void* userd
if (u->ignore) if (u->ignore)
return PA_HOOK_OK; return PA_HOOK_OK;
/* There's no point in doing anything if the core is shut down anyway */
if (c->state == PA_CORE_SHUTDOWN)
return PA_HOOK_OK;
/* Auto-loaded null-sink not active, so ignoring newly detected sink. */ /* Auto-loaded null-sink not active, so ignoring newly detected sink. */
if (u->null_module == PA_INVALID_INDEX) if (u->null_module == PA_INVALID_INDEX)
return PA_HOOK_OK; return PA_HOOK_OK;
@ -130,6 +134,10 @@ static pa_hook_result_t unlink_hook_callback(pa_core *c, pa_sink *sink, void* us
return PA_HOOK_OK; return PA_HOOK_OK;
} }
/* There's no point in doing anything if the core is shut down anyway */
if (c->state == PA_CORE_SHUTDOWN)
return PA_HOOK_OK;
load_null_sink_if_needed(c, sink, u); load_null_sink_if_needed(c, sink, u);
return PA_HOOK_OK; return PA_HOOK_OK;
@ -172,7 +180,7 @@ void pa__done(pa_module*m) {
pa_hook_slot_free(u->put_slot); pa_hook_slot_free(u->put_slot);
if (u->unlink_slot) if (u->unlink_slot)
pa_hook_slot_free(u->unlink_slot); pa_hook_slot_free(u->unlink_slot);
if (u->null_module != PA_INVALID_INDEX) if (u->null_module != PA_INVALID_INDEX && m->core->state != PA_CORE_SHUTDOWN)
pa_module_unload_request_by_index(m->core, u->null_module, TRUE); pa_module_unload_request_by_index(m->core, u->null_module, TRUE);
pa_xfree(u->sink_name); pa_xfree(u->sink_name);

View file

@ -54,6 +54,10 @@ static pa_hook_result_t sink_hook_callback(pa_core *c, pa_sink *sink, void* user
pa_assert(c); pa_assert(c);
pa_assert(sink); pa_assert(sink);
/* There's no point in doing anything if the core is shut down anyway */
if (c->state == PA_CORE_SHUTDOWN)
return PA_HOOK_OK;
if (!pa_idxset_size(sink->inputs)) { if (!pa_idxset_size(sink->inputs)) {
pa_log_debug("No sink inputs to move away."); pa_log_debug("No sink inputs to move away.");
return PA_HOOK_OK; return PA_HOOK_OK;
@ -92,6 +96,10 @@ static pa_hook_result_t source_hook_callback(pa_core *c, pa_source *source, void
pa_assert(c); pa_assert(c);
pa_assert(source); pa_assert(source);
/* There's no point in doing anything if the core is shut down anyway */
if (c->state == PA_CORE_SHUTDOWN)
return PA_HOOK_OK;
if (!pa_idxset_size(source->outputs)) { if (!pa_idxset_size(source->outputs)) {
pa_log_debug("No source outputs to move away."); pa_log_debug("No source outputs to move away.");
return PA_HOOK_OK; return PA_HOOK_OK;