static void defer_cb(pa_mainloop_api*api, pa_defer_event *e, void *userdata) { void *state = NULL; pa_core *c = PA_CORE(userdata); pa_module *m; pa_core_assert_ref(c); api->defer_enable(e, 0); while ((m = pa_idxset_iterate(c->modules, &state, NULL))) if (m->unload_requested) pa_module_unload(c, m, TRUE); }
static int core_process_msg(pa_msgobject *o, int code, void *userdata, int64_t offset, pa_memchunk *chunk) { pa_core *c = PA_CORE(o); pa_core_assert_ref(c); switch (code) { case PA_CORE_MESSAGE_UNLOAD_MODULE: pa_module_unload(c, userdata, true); return 0; default: return -1; } }
static void cmtspeech_unload_defer_cb(pa_mainloop_api *ma, pa_defer_event *de, void *userdata) { pa_module *m; pa_assert_se(m = (pa_module *) userdata); pa_module_unload(m->core, m, true); }