]> code.delx.au - pulseaudio/commitdiff
deal properly with recursive module unloading
authorLennart Poettering <lennart@poettering.net>
Mon, 31 Jul 2006 21:53:48 +0000 (21:53 +0000)
committerLennart Poettering <lennart@poettering.net>
Mon, 31 Jul 2006 21:53:48 +0000 (21:53 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1174 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/module.c

index e7dca78d5b941a5793d8da4c604335217f1b91f5..3568059e6dc3ee3b3b647eab0059ea986a197185 100644 (file)
@@ -224,10 +224,14 @@ static void free_callback(void *p, PA_GCC_UNUSED void *userdata) {
 
 void pa_module_unload_all(pa_core *c) {
     assert(c);
+    pa_module *m;
 
     if (!c->modules)
         return;
 
+    while ((m = pa_idxset_first(c->modules, NULL)))
+        pa_module_unload(c, m);
+
     pa_idxset_free(c->modules, free_callback, NULL);
     c->modules = NULL;