On Fri, 18 Aug 2017, at 12:37 PM, Tanu Kaskinen wrote: > Users may want to change the parameters of some load-once modules in > ~/.config/pulse/default.pa. That should be possible by including > /etc/pulse/default.pa from the per-user configuration file, and then > unloading a module and reloading it with different parameters. However, > that doesn't work, because the unload-module command will not unload the > module immediately, so the subsequent load-module command will fail when > the module can be loaded only once. > > This patch makes the module unloading synchronous. "pacmd unload-module > module-cli-protocol-unix" is something that might not like this change, > since the command will unload the code that is processing the command, > but I tested it and it works fine. When pa_module_unload() is called, > that won't yet remove the module code from memory, the lt_dlclose() call > is postponed until it's safe to remove the code from memory. > > BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=102205 > --- > src/pulsecore/cli-command.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/pulsecore/cli-command.c b/src/pulsecore/cli-command.c > index 01fea475b..0d56ba94c 100644 > --- a/src/pulsecore/cli-command.c > +++ b/src/pulsecore/cli-command.c > @@ -462,13 +462,13 @@ static int pa_cli_command_unload(pa_core *c, > pa_tokenizer *t, pa_strbuf *buf, bo > return -1; > } > > - pa_module_unload_request(m, false); > + pa_module_unload(m, false); > > } else { > PA_IDXSET_FOREACH(m, c->modules, idx) > if (pa_streq(i, m->name)) { > unloaded = true; > - pa_module_unload_request(m, false); > + pa_module_unload(m, false); > } > > if (unloaded == false) { > -- Looks good. -- Arun