From bae221cca97816e0ae0395ac1e561aa208cb0346 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 15 Jan 2009 20:49:12 +0100 Subject: rework module usage counter stuff to be pull based --- src/pulsecore/module.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/pulsecore/module.c') diff --git a/src/pulsecore/module.c b/src/pulsecore/module.c index b197ba06..c4dcb478 100644 --- a/src/pulsecore/module.c +++ b/src/pulsecore/module.c @@ -45,8 +45,7 @@ #define PA_SYMBOL_INIT "pa__init" #define PA_SYMBOL_DONE "pa__done" #define PA_SYMBOL_LOAD_ONCE "pa__load_once" - -#define UNLOAD_POLL_TIME 2 +#define PA_SYMBOL_GET_N_USED "pa__get_n_used" pa_module* pa_module_load(pa_core *c, const char *name, const char *argument) { pa_module *m = NULL; @@ -92,9 +91,9 @@ pa_module* pa_module_load(pa_core *c, const char *name, const char *argument) { } m->done = (void (*)(pa_module*_m)) pa_load_sym(m->dl, name, PA_SYMBOL_DONE); + m->get_n_used = (int (*)(pa_module*_m)) pa_load_sym(m->dl, name, PA_SYMBOL_GET_N_USED); m->userdata = NULL; m->core = c; - m->n_used = -1; m->unload_requested = FALSE; if (m->init(m) < 0) { @@ -235,17 +234,17 @@ void pa_module_unload_request_by_index(pa_core *c, uint32_t idx, pa_bool_t force pa_module_unload_request(m, force); } -void pa_module_set_used(pa_module*m, int used) { +pa_modinfo *pa_module_get_info(pa_module *m) { pa_assert(m); - if (m->n_used != used) - pa_subscription_post(m->core, PA_SUBSCRIPTION_EVENT_MODULE|PA_SUBSCRIPTION_EVENT_CHANGE, m->index); - - m->n_used = used; + return pa_modinfo_get_by_handle(m->dl, m->name); } -pa_modinfo *pa_module_get_info(pa_module *m) { +int pa_module_get_n_used(pa_module*m) { pa_assert(m); - return pa_modinfo_get_by_handle(m->dl, m->name); + if (!m->get_n_used) + return -1; + + return m->get_n_used(m); } -- cgit